{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import re\n",
    "import math\n",
    "\n",
    "def getDateSet(dataPath=\"\"r\"./SMSSpamCollection\"):\n",
    "    with open(dataPath, encoding='utf-8') as f:\n",
    "        txt_data = f.readlines()\n",
    "    # 所有邮件\n",
    "    data = []\n",
    "    # 标签\n",
    "    classTag = []\n",
    "    # 垃圾邮件\n",
    "    spam_data_num = 0\n",
    "    # 正常邮件\n",
    "    ham_data_num = 0\n",
    "    for line in txt_data:\n",
    "        line_split = line.strip(\"\\n\").split('\\t')\n",
    "        if line_split[0] == \"ham\":\n",
    "            data.append(line_split[1])\n",
    "            spam_data_num += 1\n",
    "            classTag.append(1)\n",
    "        elif line_split[0] == \"spam\":\n",
    "            data.append(line_split[1])\n",
    "            ham_data_num += 1\n",
    "            classTag.append(0)\n",
    "    print(\"数据集大小为{}, 其中垃圾邮件数量为{}，正常邮件数量为{}\".format(len(data), spam_data_num, ham_data_num))\n",
    "    return data, classTag"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "class NaiveBayes:\n",
    "    def __init__(self):\n",
    "        self.__ham_count = 0  # 正常短信数量\n",
    "        self.__spam_count = 0  # 垃圾短信数量\n",
    "\n",
    "        self.__ham_words_count = 0  # 正常短信单词总数\n",
    "        self.__spam_words_count = 0  # 垃圾短信单词总数\n",
    "\n",
    "        self.__ham_words = list()  # 正常短信单词列表\n",
    "        self.__spam_words = list()  # 垃圾短信单词列表\n",
    "\n",
    "        # 训练集中不重复单词集合\n",
    "        self.__word_dictionary_set = set()\n",
    "        self.__word_dictionary_size = 0\n",
    "\n",
    "        self.__ham_map = dict()  # 正常短信的词频统计\n",
    "        self.__spam_map = dict()  # 垃圾短信的词频统计\n",
    "\n",
    "        self.__ham_probability = 0.0\n",
    "        self.__spam_probability = 0.0\n",
    "\n",
    "    # 输入为一封邮件的内容\n",
    "    def data_preprocess(self, sentence):\n",
    "        # 将输入转换为小写并将特殊字符替换为空格\n",
    "        temp_info = re.sub('\\W', ' ', sentence.lower())\n",
    "        # 根据空格将其分割为一个一个单词\n",
    "        words = re.split(r'\\s+', temp_info)\n",
    "        # 返回长度大于等于3的所有单词\n",
    "        return list(filter(lambda x: len(x) >= 3, words))\n",
    "\n",
    "    def fit(self, X_train, y_train):\n",
    "        words_line = []\n",
    "        for sentence in X_train:\n",
    "            words_line.append(self.data_preprocess(sentence))\n",
    "        self.build_word_set(words_line, y_train)\n",
    "        self.word_count()\n",
    "\n",
    "    def build_word_set(self, X_train, y_train):\n",
    "        for words, y in zip(X_train, y_train):\n",
    "            if y == 0:\n",
    "                # 正常短信\n",
    "                self.__ham_count += 1\n",
    "                self.__ham_words_count += len(words)\n",
    "                for word in words:\n",
    "                    self.__ham_words.append(word)\n",
    "                    self.__word_dictionary_set.add(word)\n",
    "            if y == 1:\n",
    "                # 垃圾短信\n",
    "                self.__spam_count += 1\n",
    "                self.__spam_words_count += len(words)\n",
    "                for word in words:\n",
    "                    self.__spam_words.append(word)\n",
    "                    self.__word_dictionary_set.add(word)\n",
    "\n",
    "        self.__word_dictionary_size = len(self.__word_dictionary_set)\n",
    "\n",
    "    def word_count(self):\n",
    "        # 不同类别下的词频统计\n",
    "        for word in self.__ham_words:\n",
    "            self.__ham_map[word] = self.__ham_map.setdefault(word, 0) + 1\n",
    "\n",
    "        for word in self.__spam_words:\n",
    "            self.__spam_map[word] = self.__spam_map.setdefault(word, 0) + 1\n",
    "\n",
    "        # 非垃圾短信的概率\n",
    "        self.__ham_probability = self.__ham_count / (self.__ham_count + self.__spam_count)\n",
    "        # 垃圾短信的概率\n",
    "        self.__spam_probability = self.__spam_count / (self.__ham_count + self.__spam_count)\n",
    "        print(\"正常短信词频：{}\".format(self.__ham_map))\n",
    "        print(\"垃圾短信词频：{}\".format(self.__spam_map))\n",
    "\n",
    "    def predict(self, X_test):\n",
    "        return [self.predict_one(sentence) for sentence in X_test]\n",
    "\n",
    "    def predict_one(self, sentence):\n",
    "        ham_pro = 0\n",
    "        spam_pro = 0\n",
    "        words = self.data_preprocess(sentence)\n",
    "        for word in words:\n",
    "            ham_pro += math.log(\n",
    "                (self.__ham_map.get(word, 0) + 1) / (self.__ham_count + self.__word_dictionary_size))\n",
    "\n",
    "            spam_pro += math.log(\n",
    "                (self.__spam_map.get(word, 0) + 1) / (self.__spam_count + self.__word_dictionary_size))\n",
    "\n",
    "        ham_pro += math.log(self.__ham_probability)\n",
    "        spam_pro += math.log(self.__spam_probability)\n",
    "        return int(spam_pro >= ham_pro)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "数据集大小为5574, 其中垃圾邮件数量为4827，正常邮件数量为747\n",
      "正常短信词频：{'free': 120, 'entry': 18, 'wkly': 9, 'comp': 6, 'win': 39, 'cup': 4, 'final': 11, 'tkts': 3, '21st': 2, 'may': 6, '2005': 3, 'text': 62, '87121': 3, 'receive': 19, 'question': 4, 'std': 5, 'txt': 102, 'rate': 15, 'apply': 14, '08452810075over18': 2, 'freemsg': 9, 'hey': 5, 'there': 8, 'darling': 2, 'been': 21, 'week': 37, 'now': 115, 'and': 81, 'word': 17, 'back': 14, 'like': 7, 'some': 3, 'fun': 3, 'you': 154, 'for': 102, 'still': 4, 'xxx': 8, 'chgs': 1, 'send': 42, 'rcv': 2, 'winner': 10, 'valued': 3, 'network': 11, 'customer': 24, 'have': 76, 'selected': 14, 'receivea': 1, '900': 3, 'prize': 50, 'reward': 2, 'claim': 62, 'call': 181, '09061701461': 1, 'code': 14, 'kl341': 1, 'valid': 13, 'hours': 2, 'only': 44, 'had': 7, 'your': 136, 'mobile': 59, 'months': 1, 'more': 19, 'entitled': 3, 'update': 10, 'the': 112, 'latest': 19, 'colour': 5, 'mobiles': 7, 'with': 55, 'camera': 16, '08002986030': 1, 'six': 1, 'chances': 1, 'cash': 46, 'from': 64, '100': 21, '000': 20, 'pounds': 9, 'csh11': 1, '87575': 2, 'cost': 15, '150p': 43, 'day': 9, '6days': 1, 'tsandcs': 1, 'reply': 51, 'info': 8, 'urgent': 36, 'won': 41, 'membership': 1, 'our': 44, 'jackpot': 1, '81010': 1, 'www': 56, 'dbuk': 1, 'net': 9, 'lccltd': 1, 'pobox': 7, '4403ldnw1a7rw18': 1, 'xxxmobilemovieclub': 2, 'use': 5, 'credit': 6, 'click': 4, 'wap': 9, 'link': 3, 'next': 10, 'message': 17, 'here': 6, 'http': 8, 'com': 29, 'qjkgighjjgcbl': 1, 'england': 4, 'macedonia': 1, 'dont': 9, 'miss': 6, 'goals': 1, 'team': 3, 'news': 7, 'national': 11, '87077': 5, 'try': 6, 'wales': 1, 'scotland': 1, '4txt': 2, 'poboxox36504w45wq': 1, 'thanks': 7, 'subscription': 2, 'ringtone': 16, 'will': 23, 'charged': 6, 'month': 5, 'please': 29, 'confirm': 1, 'replying': 2, 'yes': 9, 'not': 16, '07732584351': 1, 'rodger': 1, 'burns': 1, 'msg': 32, 'tried': 6, 'sms': 22, 'nokia': 40, 'camcorder': 4, '08000930705': 4, 'delivery': 9, 'tomorrow': 5, 'sptv': 2, 'new': 33, 'jersey': 1, 'devils': 1, 'detroit': 1, 'red': 1, 'wings': 1, 'play': 11, 'ice': 1, 'hockey': 1, 'correct': 4, 'incorrect': 1, 'end': 9, 'congrats': 6, 'year': 6, 'special': 14, 'cinema': 3, 'pass': 3, 'yours': 9, '09061209465': 3, 'suprman': 3, 'matrix3': 3, 'starwars3': 3, 'etc': 5, 'all': 17, 'bx420': 4, 'ip4': 5, '5we': 5, '150pm': 4, 'out': 38, 'pleased': 1, 'advise': 1, 'that': 13, 'following': 1, 'recent': 1, 'review': 2, 'mob': 14, 'are': 40, 'awarded': 19, '1500': 1, 'bonus': 15, '09066364589': 1, 'complimentary': 7, 'trip': 3, 'eurodisinc': 1, 'trav': 1, 'aco': 1, 'entry41': 1, '1000': 25, 'dis': 1, 'morefrmmob': 1, 'shracomorsglsuplt': 1, 'ls1': 1, '3aj': 1, 'did': 1, 'hear': 2, 'about': 7, 'divorce': 1, 'barbie': 1, 'comes': 2, 'ken': 1, 'stuff': 1, 'service': 32, 'representative': 6, '0800': 8, '169': 1, '6031': 1, 'between': 6, '10am': 4, '9pm': 1, 'guaranteed': 28, '5000': 12, 'waiting': 10, 'collected': 2, 'simply': 2, 'password': 3, 'mix': 2, '85069': 2, 'verify': 3, 'get': 48, 'usher': 2, 'britney': 2, 'fml': 2, 'box': 22, '5249': 2, 'mk17': 2, '92h': 2, '450ppw': 2, 'gent': 2, 'trying': 8, 'contact': 28, 'last': 7, 'weekends': 3, 'draw': 23, 'shows': 15, '09064012160': 2, 'k52': 2, '12hrs': 10, '150ppm': 24, 'specially': 5, 'holiday': 17, 'flights': 5, 'inc': 3, 'speak': 6, 'live': 16, 'operator': 8, '0871277810910p': 1, 'min': 21, 'private': 8, '2004': 4, 'account': 9, 'statement': 7, '07742676969': 2, '786': 2, 'unredeemed': 2, 'points': 7, '08719180248': 2, 'identifier': 7, '45239': 2, 'expires': 7, 'was': 5, '2000': 14, 'caller': 9, 'this': 39, 'landline': 17, '09064019788': 1, 'box42wr29c': 1, 'todays': 9, 'voda': 2, 'numbers': 4, 'ending': 4, '7548': 1, '350': 6, 'award': 14, 'match': 3, '08712300220': 2, 'quoting': 2, '4041': 1, 'standard': 2, 'rates': 3, 'app': 2, 'sunshine': 7, 'quiz': 12, 'top': 12, 'sony': 5, 'dvd': 6, 'player': 9, 'know': 17, 'which': 4, 'country': 4, 'algarve': 2, 'ansr': 4, '82277': 5, 'tyrone': 4, 'want': 12, 'laid': 3, 'tonight': 2, 'real': 10, 'dogging': 8, 'locations': 4, 'sent': 7, 'direct': 6, 'join': 12, 'largest': 3, 'txting': 6, 'gravel': 1, '69888': 2, 'ec2a': 4, '31p': 2, 'any': 7, 'msgs': 4, 'chat': 25, 'svc': 1, 'hardcore': 1, 'services': 9, '69988': 1, 'nothing': 2, 'must': 4, 'age': 7, 'again': 2, 'why': 5, 'haven': 1, 'replied': 1, 'randy': 2, 'sexy': 12, 'female': 1, 'local': 4, 'luv': 4, 'netcollex': 1, 'ltd': 8, '08700621170150p': 1, 'per': 24, 'stop': 63, 'annoncement': 1, 'years': 6, '07046744435': 1, 'arrange': 2, '0871277810810': 2, 'pls': 6, 'bootydelious': 2, 'inviting': 1, 'her': 3, 'friend': 5, '434': 3, 'see': 8, 'frnd': 1, '62468': 2, 'bangbabes': 1, 'order': 8, 'way': 1, 'should': 4, 'download': 2, 'content': 11, 'goto': 4, 'bangb': 1, 'internet': 1, 'menu': 1, '09061701939': 1, 's89': 1, 'freephone': 5, '0808': 2, '145': 2, '4742': 2, '9am': 2, '11pm': 2, 'unique': 1, 'enough': 2, 'find': 21, '30th': 1, 'august': 1, 'areyouunique': 1, '500': 32, '89545': 2, 'collect': 11, 'today': 13, 'biz': 4, '2optout': 4, '087187262701': 2, '50gbp': 2, 'mtmsg18': 2, 'meet': 5, 'dream': 2, 'partner': 4, 'soon': 2, 'career': 1, 'off': 2, 'flyng': 1, 'start': 4, 'horo': 2, 'followed': 3, 'star': 1, 'sign': 2, 'aries': 1, 'someone': 7, 'can': 17, 'date': 7, 'even': 4, 'flirt': 4, 'its': 2, 'just': 51, '10p': 12, 'name': 8, 'sam': 2, 'recd': 3, 'thirtyeight': 1, 'pence': 2, '447801259231': 1, 'secret': 7, 'admirer': 7, 'who': 32, 'looking': 6, 'make': 6, 'they': 11, 'reveal': 9, 'thinks': 7, '09058094597': 1, 'congratulations': 9, 'vouchers': 15, '125gift': 2, 'music': 13, '87066': 8, 'tncs': 5, 'ldew': 7, 'com1win150ppmx3age16': 3, 'offer': 18, 'video': 12, 'handset': 1, '750': 8, 'anytime': 5, 'networks': 2, 'mins': 15, 'unlimited': 2, 'really': 1, 'horny': 3, 'naked': 1, 'hot': 9, '69698': 2, 'unsubscribe': 11, 'has': 15, 'changed': 1, 'credits': 7, 'club4mobiles': 1, 'choose': 5, 'club': 9, '87070': 1, 'club4': 1, 'box1146': 1, 'mk45': 1, '2wt': 1, 'singles': 4, 'chart': 1, 'each': 6, 'quality': 1, 'charge': 5, 'hmv': 7, 'genuine': 2, 'answer': 6, 'easy': 5, 'questions': 4, '86688': 14, '100percent': 2, 'phone': 26, 'upgrade': 3, 'pay': 1, 'sim': 2, 'card': 3, 'loyalty': 5, '0845': 2, '021': 1, '3680': 1, 'ends': 3, '28thfeb': 1, 'blind': 2, 'rodds1': 1, 'aberdeen': 1, 'united': 1, 'kingdom': 1, 'check': 2, 'him': 1, 'img': 1, 'icmb3cktz8r7': 1, 'dates': 2, 'hide': 1, 'themob': 4, 'newest': 2, 'selection': 2, 'games': 10, 'tones': 16, 'gossip': 1, 'babes': 1, 'sport': 4, 'keep': 4, 'fit': 1, 'funky': 1, '82468': 2, 'think': 1, 'smart': 2, '200': 4, 'weekly': 16, '85222': 1, 'winnersclub': 1, 'm26': 1, '3uz': 1, 'gbp1': 1, 'december': 3, '11mths': 6, '08002986906': 2, 'germany': 1, 'minute': 3, 'fixed': 1, 'line': 16, 'via': 1, 'access': 3, 'number': 11, '0844': 1, '861': 1, 'prepayment': 1, 'valentines': 2, 'over': 11, 'take': 10, 'lifetime': 2, '83600': 3, 'rcvd': 7, 'custcare': 8, '08718720201': 5, 'fancy': 8, 'shag': 1, 'interested': 1, 'sextextuk': 1, 'xxuk': 1, 'suzy': 1, '69876': 1, 'txts': 6, 'website': 1, 'balance': 6, 'currently': 6, 'maximize': 5, '08708800282': 1, 'suite342': 11, '2lands': 11, 'row': 11, 'w1j6hl': 8, 'update_now': 1, 'xmas': 7, 'motorola': 7, 'sonyericsson': 4, 'bluetooth': 5, 'double': 9, 'orange': 15, 'mobileupd8': 9, '08000839402': 9, 'call2optout': 6, 'f4q': 1, 'discount': 9, 'rp176781': 1, 'further': 2, 'messages': 10, 'regalportfolio': 1, '08717205546': 1, 'reference': 1, 't91': 1, 'gbp': 2, 'calling': 2, '09057039994': 1, '6months': 1, 'available': 2, 'phones': 6, 'n9dx': 1, '4mths': 3, 'half': 6, 'price': 9, 'rental': 5, 'mobilesdirect': 3, '08000938767': 3, 'or2stoptxt': 3, 'first': 4, '87131': 3, 'poly': 9, 'true': 1, 'tone': 35, 'help': 15, '2814032': 1, 'after': 3, '1st': 13, '150pw': 1, 'dating': 8, 'cal': 1, '09064012103': 1, 'box334sk38ch': 1, 'into': 5, '250': 13, 'competition': 3, '80086': 2, 'txttowin': 2, 'logo': 5, 'lover': 2, 'names': 2, 'joined': 2, 'heart': 2, 'love': 9, 'name1': 2, 'name2': 2, 'mobno': 2, 'adam': 2, 'eve': 2, '07123456789': 2, 'yahoo': 2, 'pobox36504w45wq': 5, 'txtno': 2, 'ads': 2, 'contacted': 2, 'entered': 6, 'because': 2, '09111032124': 1, 'pobox12n146tf150p': 1, '09058094455': 1, 'land': 9, '3030': 4, '3650': 1, '09066382422': 1, 'calls': 9, 'ave': 1, '3mins': 2, 'vary': 5, 'close': 2, '300603': 1, 'post': 2, 'bcm4284': 1, 'ldn': 7, 'wc1n3xx': 3, 'loan': 2, 'purpose': 2, 'homeowners': 2, 'tenants': 2, 'welcome': 2, 'previously': 2, 'refused': 2, '1956669': 2, 'upgrdcentre': 1, '0207': 2, '153': 2, '9153': 1, '26th': 1, 'july': 1, 'opt': 11, 'okmail': 1, 'dear': 9, 'dave': 1, 'notice': 2, 'tenerife': 6, '09061743806': 1, 'tcs': 2, 'sae': 11, 'box326': 1, 'cw25wx': 3, 'moan': 1, '69888nyt': 1, 'activate': 2, 'terms': 4, 'conditions': 2, 'visit': 4, '07781482378': 1, '123': 3, '1450': 2, '09050002311': 2, 'b4280703': 2, '08718727868': 2, '40gb': 5, 'ipod': 7, 'mp3': 3, '83355': 3, 'ibhltd': 2, 'ldnw15h': 2, 'mtmsgrcvd18': 2, 'boltblue': 1, 'mono': 2, 'poly3': 1, 'cha': 2, 'slide': 1, 'yeah': 1, 'slow': 1, 'jamz': 1, 'toxic': 1, 'come': 2, 'topped': 1, 'bubbletext': 1, 'renewal': 1, 'pin': 1, 'tgxxrz': 1, '2nd': 10, 'attempt': 13, '0871': 2, '872': 1, '9755': 1, 'box95qu': 2, '150': 14, 'worth': 10, '85023': 7, 'savamob': 11, 'member': 5, 'offers': 8, '08717898035': 3, 'sub': 7, 'unsub': 6, 'recieve': 1, 'within': 2, '24hrs': 2, 'channel': 1, 'teletext': 1, '2003': 5, '07815296484': 1, '800': 11, 'redeemed': 5, '08718738001': 1, '41782': 1, 'applausestore': 1, 'monthlysubscription': 1, '50p': 5, 'max6': 1, 'csc': 1, 'web': 2, 'age16': 5, '2stop': 1, 'call09050000327': 2, 'ring': 2, 'claims': 1, '09050005321': 1, 'textand': 1, '08002988890': 1, 'chance': 18, 'shopping': 2, 'spree': 2, 'shop': 7, '80878': 1, '08715705022': 2, '1x150p': 4, 'pound': 3, '08712402050': 1, 'before': 4, 'lines': 1, '10ppm': 1, 'promo': 1, '07753741225': 1, '08715203677': 1, '42478': 1, 'important': 5, 'announcement': 3, '542': 3, '0825': 1, 'xclusive': 1, 'clubsaisai': 1, '2morow': 1, 'soiree': 1, 'speciale': 1, 'zouk': 1, 'nichols': 1, 'paris': 2, 'roses': 1, 'ladies': 2, '07946746291': 1, '07880867867': 1, 'days': 5, 'kick': 2, 'euro2004': 4, 'kept': 3, 'results': 3, 'daily': 3, 'removed': 1, '83222': 3, 'textbuddy': 2, 'guys': 4, 'area': 6, '25p': 6, 'search': 2, 'postcode': 2, 'gaytextbuddy': 2, 'one': 6, '89693': 2, 'vodafone': 3, '4882': 1, 'matches': 7, '09064019014': 1, 'voucher': 10, 'holder': 2, 'weeks': 4, 'tlp': 2, 'expressoffer': 2, 'texts': 9, '80062': 5, '08715203694': 1, '40533': 1, 'rstm': 1, 'sw7': 1, '3ss': 1, '88800': 1, '89034': 1, 'premium': 1, '08718711108': 1, 'sun0819': 1, 'posts': 1, 'hello': 4, 'seem': 1, 'cool': 1, 'wanted': 1, 'say': 1, 'gr8': 3, 'every': 23, '08452810071': 1, 'sue': 2, 'old': 2, 'work': 3, 'lapdancer': 1, 'sex': 3, 'bedroom': 1, '89555': 2, 'textoperator': 2, '1da': 1, '150ppmsg': 1, 'forwarded': 4, '448712404000': 1, '08712404000': 1, 'immediately': 3, 'fantastic': 3, 'gage': 1, 'game': 2, 'deck': 1, 'cnupdates': 1, 'newsletter': 1, 'alerts': 1, '08714712388': 1, '7pm': 4, '449071512431': 1, '1250': 2, '09071512433': 2, '050703': 2, 'csbcm4235wc1n3xx': 2, 'callcost': 2, 'mobilesvary': 2, 'max': 2, '08714712394': 1, 'email': 2, 'alertfrom': 1, 'jeri': 1, 'stewartsize': 1, '2kbsubject': 1, 'low': 1, 'prescripiton': 1, 'drvgsto': 1, 'listen': 2, 'nokia6650': 1, 'txtauction': 3, '81151': 2, 'ctxt': 1, 'mtmsg': 1, 'subscribed': 2, 'best': 4, 'until': 4, '82324': 1, 'helpline': 2, '08706091795': 2, 'realize': 1, 'thousands': 1, 'running': 1, 'around': 2, 'tattoos': 1, 'premier': 2, 'romantic': 1, 'nights': 1, 'book': 3, '08704439680ts': 1, 'unclaimed': 1, '09066368327': 1, 'closingdate04': 1, 'claimcode': 1, 'm39m51': 1, '50pmmorefrommobile2bremoved': 1, 'mobypobox734ls27yf': 1, 'city': 1, 'break': 1, 'could': 3, 'summer': 2, 'store': 4, '88039': 1, 'skilgme': 1, 'tscs087147403231winawk': 1, '50perwksub': 1, '0578': 2, 'ever': 2, 'thought': 1, 'living': 1, 'good': 6, 'life': 2, 'perfect': 1, 'community': 2, '100p': 1, 'polyphonic': 2, '087018728737': 1, 'toppoly': 1, 'tune': 1, 'subpoly': 2, '81618': 2, 'pole': 1, '08718727870': 3, '9996': 1, '14thmarch': 1, 'availa': 1, 'pobox84': 4, 'm263uz': 4, 'no1': 5, '8077': 1, 'tell': 9, 'mates': 7, 'getzed': 7, '36504': 4, 'w45wq': 3, 'norm150p': 3, 'cashto': 2, '08000407165': 2, 'getstop': 2, '88222': 2, 'php': 2, 'rg21': 1, '4jx': 1, 'either': 6, 'gift': 10, 'were': 2, 'outbid': 1, 'simonwatson5120': 1, 'shinco': 1, 'plyr': 1, 'bid': 2, 'smsrewards': 1, 'notifications': 1, 'smsservices': 1, 'yourinclusive': 1, 'comuk': 5, 'login': 3, '3qxj9': 2, 'extra': 3, '08702840625': 2, '220': 1, 'cm2': 1, '9ae': 2, 'alfie': 1, 'moon': 1, 'children': 1, 'need': 5, 'song': 1, 'm8s': 1, 'charity': 3, '8007': 13, 'nokias': 1, 'polys': 3, 'zed': 3, '08701417012': 1, 'profit': 1, '09065174042': 2, 'cust': 3, 'care': 4, '07821230901': 2, 'five': 2, '08002888812': 1, 'wed': 1, 'remove': 2, '09066350750': 1, 'ibiza': 1, 'await': 10, 'collection': 13, 'sk3': 1, '8wp': 1, 'ppm': 3, 'talk': 1, 'friends': 4, 'fall': 1, 'worlds': 1, 'most': 1, 'discreet': 2, 'vip': 3, '83110': 1, 'yrs': 2, 'supply': 3, 'cds': 3, 'virgin': 1, 'records': 1, 'mystery': 1, '09061104283': 1, 'smsco': 1, '50pm': 1, 'approx': 1, '07808': 1, 'xxxxxx': 1, '08719899217': 1, '41685': 2, 'posh': 1, 'birds': 1, 'chaps': 1, 'user': 3, 'trial': 1, 'prods': 1, 'champneys': 1, 'put': 1, 'down': 1, 'address': 4, 'dob': 1, 'asap': 6, 'what': 13, 'how': 5, '0721072': 1, 'till': 2, 'drop': 2, '10k': 3, 'travel': 2, '09064011000': 2, 'ntt': 8, 'cr01327bt': 2, 'fixedline': 2, 'liverpool': 2, 'played': 2, 'mid': 2, '09058094565': 2, '09065171142': 1, 'stopsms': 1, 'reminder': 1, 'downloaded': 1, 'already': 1, 'paid': 1, 'doit': 1, 'mymoby': 1, 'lastest': 1, 'stereophonics': 1, 'marley': 1, 'dizzee': 1, 'racal': 1, 'libertines': 1, 'strokes': 1, 'nookii': 1, 'bookmark': 1, 'january': 1, 'male': 1, 'sale': 2, 'gay': 4, 'cheaper': 1, '08709222922': 1, 'cheap': 2, 'peak': 1, '08712460324': 3, 'money': 2, 'lucky': 3, '88600': 3, '1million': 1, 'give': 5, 'away': 2, 'ppt150x3': 1, 'normal': 1, 'box403': 1, 'w1t1jy': 1, 'matthew': 1, '09063440451': 1, 'lux': 2, 'ppm150': 1, 'box334': 1, 'sk38xh': 3, '09061749602': 1, '528': 1, 'hp20': 1, '1yf': 1, 'getting': 4, 'touch': 1, 'folks': 1, 'company': 2, 'enjoy': 5, '114': 2, 'tcr': 2, 'filthy': 1, 'stories': 1, 'girls': 2, '09050001808': 1, 'm95': 1, 'valid12hrs': 2, 'videophones': 2, '09063458130': 2, 'videochat': 2, 'wid': 2, 'java': 2, 'dload': 2, 'polyph': 2, 'noline': 2, 'rentl': 2, 'panasonic': 1, 'bluetoothhdset': 1, 'doublemins': 1, 'doubletxt': 1, 'contract': 1, 'guess': 4, 'somebody': 2, 'secretly': 2, 'fancies': 3, 'wanna': 7, '09065394514': 1, 'datebox1282essexcm61xn': 2, '09058097218': 1, 'ls15hb': 1, 'flirting': 1, 'girl': 4, 'bloke': 1, 'zoe': 1, 'chatting': 1, 'kickoff': 2, 'informed': 2, 'euro': 2, 'eastenders': 1, 'flower': 1, 'does': 2, 'dot': 1, 'compare': 1, 'herself': 1, 'violet': 1, 'tulip': 1, 'lily': 1, '84025': 2, 'wkent': 1, '150p16': 1, 'lots': 1, 'people': 2, 'registered': 3, 'flirtparty': 1, 'replys150': 1, 'asked': 1, 'cant': 1, '09058091854': 1, 'revealed': 1, 'box385': 1, '6wu': 1, '09050003091': 2, 'c52': 2, 'invited': 3, 'xchat': 3, 'sipix': 1, 'digital': 3, '09061221061': 1, '28days': 1, 'box177': 1, 'm221bp': 1, '2yr': 1, 'warranty': 1, '09061790121': 2, 'subscriber': 4, 'receipt': 3, 'ans': 5, 'when': 7, 'elvis': 1, 'presleys': 1, 'birthday': 1, 'information': 3, 'log': 3, 'onto': 3, 'urawinner': 2, 'surprise': 2, 'awaiting': 3, '449050000301': 1, '09050000301': 1, 'bored': 2, 'speed': 1, 'speedchat': 2, '80155': 1, 'don': 7, 'swap': 1, 'chatter': 1, 'chat80155': 1, 'rcd': 1, '08000776320': 1, 'taking': 1, 'part': 7, 'survey': 1, 'yesterday': 1, 'however': 1, 'wish': 2, '80160': 1, 'txt43': 1, 'hmv1': 1, 'forget': 1, 'place': 3, 'many': 3, 'requests': 1, '1stchoice': 1, '08707808226': 1, 'let': 3, 'other': 4, 'thank': 1, 'notified': 1, 'luck': 2, 'future': 1, 'marketing': 1, '84122': 1, '08450542832': 1, 'virgins': 1, 'ready': 1, '4fil': 2, 'sexual': 1, 'theirs': 1, 'cute': 1, '69911': 1, 'got': 3, 'takes': 2, 'wrc': 2, 'rally': 2, 'lucozade': 2, 'energy': 2, '61200': 1, 'packs': 1, 'itcould': 1, 'pic': 11, 'jordan': 3, 'babe': 3, 'then': 6, 'celeb': 3, 'pocketbabe': 3, 'pics': 9, '087016248': 1, 'voicemail': 2, '08719181503': 1, 'choice': 3, 'enter': 6, 'subs16': 2, '1win150ppmx3': 2, 'delivered': 2, 'door': 1, 'exp': 1, '30apr': 1, '08719181513': 1, 'nok': 2, '87021': 2, 'txtin': 3, '4info': 3, 'completely': 1, 'accommodation': 1, 'various': 1, 'global': 1, 'phb1': 1, '08700435505150p': 1, '84128': 2, 'textcomp': 2, '08712405020': 3, '08712402779': 1, 'hungry': 2, 'feeling': 2, '08718730555': 1, 'set': 1, '09096102316': 1, 'cum': 3, '2moro': 1, 'jane': 1, 'minmoremobsemspobox45po139wa': 2, '80488': 5, 'jamster': 3, 'videosound': 1, 'gold': 1, 'videosounds': 1, 'logos': 2, 'musicnews': 1, '09701213186': 1, 'lions': 1, 'lionm': 1, 'lionp': 1, 'ringtones': 3, 'original': 1, '3gbp': 1, 'harry': 2, 'potter': 1, 'phoenix': 1, 'among': 1, 'readers': 1, 'sang': 1, 'uptown': 1, 'free2day': 2, 'george': 2, '89080': 2, 'saucy': 3, '0870241182716': 2, 'fantasies': 3, '08707509020': 5, '20p': 5, '1327': 5, 'croydon': 5, 'cr9': 5, '5wb': 5, '0870': 5, 'bears': 1, 'nick': 1, 'tom': 1, 'pete': 1, 'dick': 1, 'fact': 1, 'types': 1, 'photo': 2, 'upload': 1, '08718730666': 1, 'linerental': 4, 'very': 1, 'lf56': 1, 'msgrcvdhg': 2, 'win150ppmx3age16': 1, 'arsenal': 1, 'dartboard': 1, 'condition': 1, 'but': 2, 'doubles': 1, 'trebles': 1, 'textpod': 4, 'pod': 2, 'optin': 1, 'whats': 1, 'bbc': 1, 'charts': 1, 'summers': 1, 'finally': 1, 'matched': 1, 'optout': 3, 'help08714742804': 1, 'claire': 2, 'havin': 1, 'borin': 1, 'time': 6, 'alone': 3, '2nite': 4, '09099725823': 1, 'hope': 4, 'bought': 1, 'costing': 2, 'offering': 1, '09066362231': 3, '07xxxxxxxxx': 2, 'reach': 5, '07801543489': 1, 'latests': 1, 'llc': 1, 'usa': 1, 'msgrcvd18': 1, 'lucy': 2, 'hubby': 1, 'meetins': 1, 'fri': 1, 'hotel': 1, 'cumin': 1, 'leave': 1, '2day': 3, '09099726395': 1, 'minmobsmorelkpobox177hp51fl': 3, 'credited': 1, 'jsco': 2, 'high': 2, 'where': 2, '2channel': 1, 'leadership': 1, 'skills': 1, 'strong': 1, 'psychic': 1, 'vote': 1, 'sing': 2, 'along': 1, 'stars': 1, 'karaoke': 1, 'brand': 2, 'arrive': 3, 'shortly': 2, 'install': 1, 'browse': 1, 'artists': 1, '4719': 1, '523': 1, '7250i': 3, 'auction': 8, '86021': 4, 'w1jhl': 3, 'plus': 5, '7250': 1, '08719899230': 1, 'olympics': 1, 'king': 3, 'pro': 1, 'ringtoneking': 2, '08701237397': 1, 'redeemable': 1, '09058094599': 1, 'stay': 2, 'british': 1, 'hotels': 1, 'london': 1, '02072069400': 1, '526': 1, 'sw73ss': 1, 'eerie': 4, 'rply': 3, 'title': 3, 'dracula': 2, 'titles': 3, 'ghost': 2, 'addamsfa': 2, 'munsters': 2, 'exorcist': 2, 'twilight': 2, 'allow': 1, 'companies': 1, 'bill': 1, 'responsible': 1, 'their': 1, 'suppliers': 1, 'guarantee': 1, 'sell': 1, 'feelin': 1, 'kinda': 1, 'lnly': 1, 'jst': 1, 'cam': 1, 'moby': 2, '82242': 2, 'msg150p': 1, '2rcv': 1, 'hlp': 1, '08712317606': 1, 'action': 3, '80608': 2, 'movietrivia': 2, '08712405022': 2, 'rgent': 1, 'lookin': 1, 'daytime': 1, 'wiv': 1, 'busty': 1, 'married': 2, 'woman': 1, 'sort': 1, '09099726429': 1, 'janinexx': 1, '09050001295': 1, 'a21': 1, 'monthly': 1, 'mobsi': 1, '391784': 1, '0089': 1, 'four': 1, 'digits': 1, 'received': 1, '09063442151': 1, 'sorry': 2, 'ordered': 1, '81303': 3, 'sufficient': 1, 'hard': 2, '121': 2, '60p': 2, 'connect': 1, '09094646899': 1, 'biggest': 1, 'bcm1896wc1n3xx': 1, 'wow': 1, 'boys': 2, '2007': 1, 'tour': 1, 'tickets': 1, 'pre': 1, 'trackmarque': 1, 'vipclub4u': 1, 'mandy': 1, 'sullivan': 1, 'hotmix': 1, 'chosen': 1, 'easter': 1, 'telephone': 1, '09041940223': 1, 'transferred': 1, 'else': 1, 'going': 3, 'bahamas': 2, 'callfreefone': 1, '08081560665': 1, 'cruise': 1, '07786200117': 1, 'conacted': 1, '09111030116': 1, 'pobox12n146tf15': 1, '07734396839': 1, 'ibh': 1, 'nokia6600': 1, 'buy': 1, 'space': 1, 'invaders': 1, 'orig': 1, 'arcade': 2, 'console': 1, 'press': 1, 'settings': 1, 'purchase': 1, 'big': 1, 'brother': 1, 'alert': 3, 'computer': 1, '09064018838': 1, 'cro1327': 1, 'foley': 1, 'exciting': 2, 'prizes': 1, 'eye': 1, '82050': 1, '1225': 1, '50award': 1, '3100': 1, 'hottest': 1, 'straight': 1, 'wet': 1, 'wanting': 1, 'costs': 1, 'g696ga': 1, 'hack': 1, 'backdoor': 1, 'rooms': 1, 'fraction': 1, 'neo69': 1, '09050280520': 1, 'subscribe': 1, 'dps': 1, 'bcm': 1, '8027': 1, 'upto': 1, '12mths': 1, '2price': 1, '100txt': 1, 'mth': 1, 'tooth': 2, '08001950382': 2, 'd3wv': 1, '08718726970': 1, 'would': 2, 'nearly': 1, 'banned': 1, '09058094594': 1, '0776xxxxxxx': 1, '18yrs': 1, '09061743811': 1, 'abta': 2, '326': 2, '09090900040': 1, 'extreme': 1, 'dirty': 1, 'office': 1, 'right': 1, 'total': 1, 'privacy': 1, 'knows': 1, 'sic': 1, 'listening': 1, '7mp': 1, '0870753331018': 1, 'these': 1, 'fones': 1, 'wild': 1, 'ill': 1, 'hurry': 1, 'stop2stop': 1, '80182': 1, '08452810073': 1, 'details': 2, '08715500022': 1, 'rpl': 1, 'cnl': 1, '08702490080': 1, 'tells': 1, '09066358152': 1, 'personal': 1, 'prompts': 1, 'careful': 1, 'vpod': 1, '09090204448': 1, 'minded': 1, 'yourself': 1, 'evening': 1, 'minapn': 1, 'ls278bb': 1, 'well': 3, 'done': 2, 'costa': 3, 'del': 3, 'sol': 3, '09050090044': 2, 'toclaim': 2, 'pobox334': 2, 'stockport': 2, 'max10mins': 2, '09065394973': 1, '2006': 1, 'fifa': 1, 'world': 1, 'held': 1, '87239': 2, '09061743810': 1, 'enjoyed': 2, '61610': 2, '08712400602450p': 2, 'provided': 3, 'tones2you': 2, 'downloads': 1, 'members': 1, 'open': 1, 'fone': 2, 'great': 3, 'freefone': 2, '08006344447': 1, 'starting': 2, 'tscs': 2, 'skillgame': 2, '1winaweek': 2, '150ppermesssubscription': 2, '09094100151': 1, 'cast': 1, 'aom': 2, 'gbp5': 1, 'box61': 1, 'm60': 1, '1er': 1, 'ages': 1, '09066362220': 1, 'box97n7qp': 3, 'gender': 1, 'wither': 1, '23f': 1, 'men': 2, '23g': 1, 'web2mobile': 1, 'txt250': 1, 'box139': 1, 'la32wu': 1, 'txtx': 1, '85233': 1, 'official': 1, 'flag': 2, 'yer': 1, '84199': 1, 'eng': 1, 'box39822': 1, 'w111wx': 1, 'subs': 3, 'inclusive': 2, '08700469649': 1, 'box420': 1, '087123002209am': 1, 'hols': 2, 'med': 2, 'stamped': 2, 'self': 2, 'envelope': 2, 'drinks': 2, '113': 2, 'bray': 2, 'wicklow': 2, 'eire': 2, 'starts': 3, 'saturday': 3, 'idew': 1, 'b4u': 1, 'marsms': 1, 'b4utele': 1, '08717168528': 1, 'buffy': 1, 'satisfy': 1, 'home': 1, 'pix': 2, 'qlynnbv': 1, 'help08700621170150p': 1, 'cross': 1, 'ntwk': 1, 'bundle': 1, 'deals': 1, 'also': 2, 'avble': 1, '08714712379': 1, 'ref': 2, 'k718': 1, '09065069120': 1, '4goten': 1, 'bout': 1, 'scammers': 1, 'though': 1, 'regular': 1, 'respond': 1, 'prem': 1, 'nos': 1, 'used': 1, 'beware': 1, '2morro': 1, 'term': 2, 'passion': 1, '09099726481': 1, 'dena': 1, 'r836': 1, '09065069154': 1, 'splashmobile': 1, '1000s': 2, 'subscrition': 1, '300p': 2, 'heard': 1, 'while': 1, 'rude': 2, '01223585334': 1, 'wan': 1, 'gettin': 1, 'shagged': 1, '8552': 2, '2end': 1, '88877': 2, '88066': 3, 'lost': 2, '3pound': 1, 'oranges': 1, 'weekend': 1, 'upd8': 1, '2stoptx': 1, '08718738034': 1, '21870000': 2, 'mailbox': 2, 'messaging': 2, '09056242159': 2, 'retrieve': 2, 'pub': 1, 'street': 1, 'duchess': 1, 'cornwall': 1, '008704050406': 1, 'arrow': 1, '08718726971': 1, 'tddnewsletter': 1, 'emc1': 1, 'thedailydraw': 1, 'helen': 1, 'dozens': 1, 'prizeswith': 1, '09066368753': 1, '97n7qp': 1, 'or2optout': 1, 'hv9d': 1, 'restrictions': 1, 'buddys': 1, 'sir': 1, '80082': 2, '08712402902': 1, 'spook': 3, 'halloween': 2, '08701417012150p': 1, 'fantasy': 3, 'football': 1, 'sky': 3, 'gamestar': 1, 'active': 1, '250k': 1, 'scoring': 1, 'register': 1, '88088': 1, 'expired': 1, 'monoc': 1, 'monos': 1, 'polyc': 1, 'stream': 1, '0871212025016': 1, 'draws': 1, 'town': 1, 'adult': 2, 'becausethey': 1, '09058098002': 1, 'pobox1': 1, 'w14rg': 1, 'baby': 1, 'nasty': 1, 'thing': 1, 'filthyguys': 1, 'bitch': 1, 'slo': 2, '4msgs': 1, 'gotto': 1, '220cm2': 1, 'created': 1, 'page': 1, 'asjesus': 1, 'read': 1, 'wrote': 1, 'opinions': 1, '83370': 1, 'trivia': 1, 'sppok': 1, '09066612661': 3, 'complementary': 1, 'wa14': 1, '2px': 1, 'sender': 1, 'hol': 1, 'hvae': 1, '09061701444': 1, 'acl03530150pm': 1, '6230': 1, '83383': 1, 'pobox114': 1, '14tcr': 1, 'text82228': 1, 'txt82228': 2, 'mini': 1, 'snap': 1, 'quizclub': 1, '80122300p': 1, 'rwm': 1, '08704050406': 1, 'brought': 1, 'gmw': 1, 'connected': 1, 'amazing': 1, 'picsfree1': 2, 'vid': 1, 'keyword': 1, 'ten': 1, '83435': 1, 'tarot': 1, '85555': 1, 'horniest': 1, 'follow': 2, 'instructions': 2, 'nyt': 2, '3lp': 2, 'knock': 2, 'whose': 1, 'tkls': 1, 'stoptxtstop': 1, 'cc100p': 1, '0870737910216yrs': 1, '077xxx': 1, '09066362206': 1, 'look': 1, '5wq': 1, 'norm': 2, 'park': 1, '69696': 1, 'response': 1, 'hit': 1, 'include': 1, 'mcfly': 1, 'sara': 1, 'jorge': 1, 'shock': 1, 'smith': 1, 'switch': 1, 'sports': 2, 'fans': 1, 'str': 1, '0870141701216': 1, '120p': 1, 'europe': 1, '10th': 1, 'sept': 2, '09050000555': 1, 'ba128nnfwfly150ppm': 1, 'uks': 1, 'fastest': 1, 'growing': 1, '83021': 1, 'tariffs': 2, '2stoptxt': 1, 'luxury': 1, 'canary': 1, 'islands': 1, '20m12aq': 1, 'james': 1, 'eh74rr': 1, 'women': 1, 'instantly': 1, '69969': 1, 'bcmsfwc1n3xx': 1, 'burger': 2, 'footy': 1, 'stadium': 1, 'large': 1, 'super': 1, 'coca': 1, 'cola': 1, 'walk': 1, 'little': 1, 'child': 1, 'afraid': 1, 'dark': 1, 'become': 1, 'teenager': 1, 'wants': 1, 'night': 1, 'bin': 1, 'instant': 1, '08715203028': 1, '9th': 1, 'wins': 1, 'fav': 1, 'mobs': 1, 'breathe1': 1, 'crazyin': 1, 'sleepingwith': 1, 'finest': 1, 'ymca': 1, 'pobox365o4w45wq': 1, 'interflora': 2, 'too': 1, 'late': 1, 'flowers': 1, 'christmas': 1, '505060': 1, 'midnight': 1, 'romcapspam': 1, 'everyone': 2, 'responding': 1, 'presence': 1, 'since': 1, 'warm': 1, 'outgoing': 1, 'bringing': 1, 'breath': 1, '08712103738': 1, '09058099801': 1, 'b4190604': 1, '7876150ppm': 1, 'crazy': 2, 'frog': 1, 'sound': 1, 'mad1': 1, 'mad2': 1, '88888': 1, 'sounds': 1, 'reality': 2, 'show': 2, 'porn': 1, '69855': 1, 'stopbcm': 1, 'pdate_now': 1, 'yhl': 1, '09058094454': 1, 'yet': 1, 'package': 1, 'resubmit': 1, 'request': 1, 'expiry': 1, '08712400200': 1, '08718723815': 1, '08714714011': 1, 'driving': 2, 'anyone': 1, 'slower': 1, 'than': 2, 'idiot': 1, 'faster': 1, 'maniac': 1, '4qf2': 1, 'professional': 1, 'tiger': 1, 'woods': 1, 'pt2': 1}\n",
      "垃圾短信词频：{'until': 15, 'jurong': 1, 'point': 10, 'crazy': 6, 'available': 7, 'only': 69, 'bugis': 5, 'great': 56, 'world': 25, 'buffet': 2, 'cine': 5, 'there': 131, 'got': 128, 'amore': 1, 'wat': 49, 'lar': 22, 'joking': 2, 'wif': 13, 'oni': 2, 'dun': 32, 'say': 54, 'early': 23, 'hor': 1, 'already': 51, 'then': 133, 'nah': 8, 'don': 91, 'think': 79, 'goes': 16, 'usf': 5, 'lives': 2, 'around': 31, 'here': 65, 'though': 12, 'even': 33, 'brother': 8, 'not': 225, 'like': 128, 'speak': 16, 'with': 154, 'they': 66, 'treat': 9, 'aids': 1, 'patent': 1, 'per': 8, 'your': 232, 'request': 4, 'melle': 6, 'oru': 3, 'minnaminunginte': 3, 'nurungu': 3, 'vettam': 3, 'has': 48, 'been': 51, 'set': 9, 'callertune': 8, 'for': 278, 'all': 143, 'callers': 4, 'press': 9, 'copy': 6, 'friends': 27, 'gonna': 27, 'home': 88, 'soon': 28, 'and': 491, 'want': 97, 'talk': 21, 'about': 87, 'this': 141, 'stuff': 20, 'anymore': 7, 'tonight': 28, 'cried': 1, 'enough': 11, 'today': 71, 'searching': 3, 'the': 612, 'right': 43, 'words': 12, 'thank': 17, 'you': 1103, 'breather': 1, 'promise': 6, 'wont': 23, 'take': 62, 'help': 19, 'granted': 1, 'will': 183, 'fulfil': 1, 'have': 257, 'wonderful': 7, 'blessing': 2, 'times': 18, 'date': 6, 'sunday': 6, 'watching': 19, 'remember': 20, 'how': 157, 'spell': 3, 'his': 33, 'name': 17, 'yes': 48, 'did': 70, 'naughty': 4, 'make': 49, 'wet': 3, 'fine': 26, 'that': 305, 'way': 63, 'feel': 39, 'its': 115, 'gota': 1, 'seriously': 7, 'going': 98, 'try': 16, 'months': 6, 'pay': 23, 'first': 34, 'when': 162, 'stock': 2, 'comin': 6, 'aft': 14, 'finish': 22, 'lunch': 28, 'str': 3, 'down': 33, 'lor': 83, 'ard': 12, 'smth': 5, 'ffffffffff': 1, 'alright': 17, 'can': 240, 'meet': 38, 'sooner': 2, 'just': 161, 'forced': 1, 'myself': 8, 'eat': 25, 'slice': 2, 'really': 49, 'hungry': 7, 'tho': 9, 'sucks': 3, 'mark': 3, 'getting': 32, 'worried': 8, 'knows': 7, 'sick': 7, 'turn': 2, 'pizza': 5, 'lol': 39, 'always': 34, 'convincing': 2, 'catch': 5, 'bus': 14, 'are': 231, 'frying': 3, 'egg': 2, 'tea': 4, 'eating': 4, 'mom': 9, 'left': 14, 'over': 32, 'dinner': 19, 'love': 114, 'back': 63, 'amp': 50, 'packing': 1, 'car': 25, 'now': 164, 'let': 40, 'know': 136, 'room': 24, 'ahhh': 1, 'work': 52, 'vaguely': 1, 'what': 140, 'does': 18, 'wait': 38, 'still': 80, 'clear': 3, 'were': 29, 'sure': 44, 'being': 21, 'sarcastic': 1, 'why': 45, 'doesn': 14, 'live': 10, 'yeah': 37, 'was': 105, 'apologetic': 1, 'had': 45, 'fallen': 1, 'out': 127, 'she': 84, 'actin': 1, 'spoilt': 1, 'child': 1, 'caught': 2, 'till': 12, 'but': 244, 'won': 12, 'doing': 45, 'too': 63, 'badly': 1, 'cheers': 2, 'tell': 61, 'anything': 37, 'fear': 2, 'fainting': 1, 'housework': 1, 'quick': 2, 'cuppa': 1, 'yup': 21, 'look': 14, 'timings': 1, 'msg': 32, 'again': 36, 'xuhui': 1, 'learn': 4, '2nd': 6, 'may': 26, 'her': 68, 'lesson': 10, '8am': 2, 'oops': 3, 'roommate': 3, 'done': 31, 'see': 74, 'letter': 3, 'decide': 6, 'hello': 27, 'saturday': 5, 'texting': 3, 'decided': 9, 'tomo': 11, 'trying': 16, 'invite': 3, 'pls': 61, 'ahead': 7, 'watts': 1, 'wanted': 15, 'weekend': 10, 'abiola': 7, 'forget': 11, 'need': 86, 'crave': 5, 'most': 18, 'sweet': 17, 'arabian': 1, 'steed': 1, 'mmmmmm': 1, 'yummy': 2, 'who': 42, 'seeing': 9, 'hope': 56, 'man': 30, 'well': 65, 'endowed': 1, 'inches': 2, 'calls': 9, 'messages': 5, 'missed': 13, 'didn': 23, 'get': 153, 'hep': 1, 'immunisation': 1, 'nigeria': 5, 'fair': 2, 'hopefully': 1, 'tyler': 2, 'could': 29, 'maybe': 16, 'ask': 46, 'bit': 22, 'stubborn': 1, 'hospital': 4, 'kept': 2, 'telling': 5, 'weak': 4, 'sucker': 1, 'hospitals': 2, 'suckers': 1, 'thinked': 1, 'time': 109, 'saw': 12, 'class': 31, 'gram': 3, 'usually': 5, 'runs': 3, 'half': 15, 'eighth': 1, 'smarter': 1, 'gets': 7, 'almost': 10, 'whole': 12, 'second': 10, 'fyi': 2, 'ride': 2, 'tomorrow': 41, 'morning': 39, 'crashing': 1, 'our': 35, 'place': 31, 'wow': 6, 'never': 17, 'realized': 1, 'embarassed': 4, 'accomodations': 1, 'thought': 22, 'liked': 3, 'since': 13, 'best': 23, 'seemed': 2, 'happy': 60, 'cave': 1, 'sorry': 89, 'more': 41, 'give': 50, 'offered': 1, 'embarassing': 1, 'mallika': 1, 'sherawat': 1, 'yesterday': 13, 'find': 27, 'url': 3, 'call': 128, 'later': 68, 'meeting': 21, 'where': 69, 'reached': 5, 'gauti': 1, 'sehwag': 1, 'odi': 2, 'series': 3, 'pick': 34, 'burger': 1, 'yourself': 14, 'move': 8, 'pain': 17, 'killing': 2, 'good': 121, 'joke': 4, 'girls': 4, 'situation': 6, 'seekers': 1, 'part': 9, 'checking': 4, 'roommates': 2, 'took': 13, 'forever': 6, 'come': 124, 'double': 5, 'check': 25, 'hair': 14, 'dresser': 2, 'said': 54, 'wun': 5, 'cut': 9, 'short': 3, 'nice': 37, 'song': 7, 'dedicated': 2, 'day': 114, 'which': 24, 'dedicate': 2, 'send': 75, 'valuable': 2, 'frnds': 6, 'rply': 5, 'plane': 5, 'month': 20, 'end': 20, 'wah': 3, 'lucky': 5, 'save': 4, 'money': 31, 'hee': 8, 'finished': 8, 'babe': 38, 'wanna': 19, 'something': 40, 'performed': 1, 'waiting': 20, 'machan': 2, 'once': 23, 'free': 26, 'thats': 21, 'cool': 19, 'gentleman': 3, 'dignity': 3, 'respect': 4, 'peoples': 1, 'very': 40, 'much': 60, 'shy': 2, 'operate': 1, 'after': 50, 'same': 25, 'looking': 12, 'job': 30, 'earn': 1, 'next': 22, 'stop': 19, 'network': 3, 'urgnt': 4, 'sms': 9, 'real': 16, 'tickets': 4, 'one': 84, 'jacket': 1, 'used': 7, 'multis': 1, 'started': 7, 'requests': 1, 'came': 14, 'bed': 20, 'coins': 4, 'factory': 1, 'gotta': 9, 'cash': 7, 'nitros': 1, 'ela': 2, 'kano': 2, 'download': 9, 'wen': 14, 'stand': 4, 'close': 10, 'another': 18, 'night': 56, 'spent': 6, 'late': 36, 'afternoon': 19, 'casualty': 1, 'means': 14, 'haven': 11, 'any': 63, 'stuff42moro': 1, 'includes': 1, 'sheets': 1, 'smile': 22, 'pleasure': 4, 'trouble': 4, 'pours': 1, 'rain': 8, 'sum1': 1, 'hurts': 2, 'becoz': 3, 'someone': 33, 'loves': 3, 'smiling': 8, 'havent': 6, 'planning': 4, 'buy': 35, 'lido': 3, '530': 2, 'show': 12, 'telugu': 2, 'movie': 13, 'abt': 14, 'loads': 8, 'loans': 1, 'hols': 1, 'run': 15, 'forgot': 20, 'hairdressers': 1, 'appointment': 4, 'four': 1, 'shower': 6, 'beforehand': 1, 'cause': 9, 'prob': 10, 'cup': 3, 'coffee': 6, 'animation': 1, 'please': 40, 'text': 39, 'nothing': 20, 'else': 11, 'okay': 16, 'price': 3, 'long': 22, 'legal': 2, 'them': 45, 'ave': 3, 'ams': 1, 'gone': 6, '4the': 1, 'driving': 12, 'test': 11, 'yet': 32, 'mean': 9, 'guess': 21, 'gave': 5, 'boston': 3, 'men': 4, 'changed': 5, 'search': 9, 'location': 2, 'nyc': 2, 'cuz': 5, 'signin': 1, 'page': 4, 'says': 14, 'umma': 5, 'life': 37, 'vava': 2, 'lot': 20, 'dear': 57, 'thanks': 34, 'wishes': 4, 'birthday': 16, 'making': 17, 'truly': 2, 'memorable': 1, 'aight': 17, 'hit': 6, 'some': 63, 'would': 40, 'address': 9, 'considering': 1, 'computer': 4, 'isn': 9, 'minecraft': 1, 'server': 1, 'grumpy': 1, 'old': 8, 'people': 21, 'better': 25, 'lying': 1, 'play': 11, 'jokes': 2, 'dont': 81, 'worry': 16, 'busy': 13, 'plural': 1, 'noun': 2, 'research': 4, 'cos': 36, 'new': 35, 'things': 29, 'scared': 2, 'mah': 8, 'loud': 2, 'openin': 1, 'sentence': 2, 'formal': 1, 'anyway': 12, 'juz': 8, 'eatin': 5, 'puttin': 1, 'weight': 7, 'haha': 31, 'anythin': 1, 'special': 22, 'happened': 9, 'entered': 5, 'cabin': 5, 'boss': 7, 'felt': 12, 'askd': 10, 'invited': 6, 'apartment': 6, 'went': 40, 'goodo': 2, 'must': 14, 'friday': 10, 'potato': 2, 'ratio': 1, 'tortilla': 2, 'needed': 2, 'hmm': 7, 'uncle': 5, 'informed': 2, 'paying': 6, 'school': 13, 'directly': 3, 'food': 12, 'apples': 1, 'pairs': 1, 'malarky': 1, 'sao': 1, 'predict': 1, 'buying': 4, 'yetunde': 3, 'hasn': 3, 'sent': 32, 'bother': 5, 'sending': 7, 'involve': 1, 'shouldn': 4, 'imposed': 1, 'apologise': 2, 'hey': 52, 'girl': 18, 'del': 1, 'bak': 4, 'sum': 2, 'from': 84, 'lucyxx': 1, 'cost': 7, 'tmorrow': 1, 'accomodate': 1, 'answer': 7, 'question': 7, 'haf': 11, 'msn': 1, 'yijue': 4, 'hotmail': 1, 'com': 12, 'him': 57, 'rooms': 1, 'befor': 1, 'activities': 1, 'lazy': 7, 'type': 7, 'lect': 8, 'pouch': 1, 'sir': 20, 'mail': 19, 'swt': 3, 'nver': 1, 'tired': 10, 'little': 15, 'lovable': 9, 'persons': 5, 'coz': 12, 'somtimes': 1, 'those': 12, 'occupy': 1, 'biggest': 1, 'their': 7, 'hearts': 2, 'gud': 32, 'ni8': 6, 'open': 7, 'dot': 1, 'whats': 8, 'staff': 1, 'taking': 10, 'ummma': 1, 'begin': 2, 'qatar': 4, 'pray': 6, 'hard': 6, 'deleted': 3, 'contact': 7, 'sindu': 1, 'birla': 3, 'soft': 3, 'wine': 5, 'flowing': 2, 'nevering': 1, 'thk': 34, 'plaza': 2, 'typical': 1, 'reply': 26, 'everywhere': 1, 'dirt': 1, 'floor': 3, 'windows': 1, 'shirt': 3, 'sometimes': 7, 'mouth': 1, 'comes': 9, 'dream': 5, 'without': 10, 'chores': 1, 'joy': 6, 'lots': 10, 'shows': 5, 'exist': 1, 'hail': 1, 'mist': 1, 'become': 3, 'aaooooright': 1, 'leaving': 10, 'house': 26, 'interview': 3, 'boy': 12, 'missing': 19, 'keep': 35, 'safe': 5, 'because': 23, 'miss': 43, 'envy': 1, 'everyone': 7, 'parents': 8, 'hand': 11, 'excited': 1, 'each': 2, 'spend': 6, 'points': 2, 'cultures': 1, 'module': 1, 'frnd': 1, 'avoid': 2, 'missunderstding': 1, 'wit': 6, 'beloved': 1, 'escape': 2, 'fancy': 3, 'bridge': 1, 'needs': 9, 'lager': 1, 'completely': 4, 'form': 2, 'clark': 2, 'also': 40, 'utter': 2, 'waste': 4, 'axis': 1, 'bank': 8, 'account': 17, 'hmmm': 10, 'hop': 2, 'muz': 5, 'discuss': 1, 'liao': 19, 'coming': 23, 'bloody': 2, 'hell': 2, 'cant': 29, 'believe': 9, 'surname': 1, 'ill': 21, 'clue': 1, 'spanish': 1, 'begins': 1, 'bath': 8, 'carlos': 13, 'mall': 1, 'turns': 4, 'staying': 4, 'til': 15, 'smoke': 15, 'worth': 4, 'doesnt': 6, 'log': 5, 'spoke': 4, 'maneesha': 2, 'satisfied': 2, 'experience': 5, 'toll': 2, 'lifted': 1, 'hopes': 1, 'offer': 5, 'especially': 4, 'approaches': 1, 'studying': 2, 'anyways': 4, 'gr8': 7, 'trust': 6, 'guys': 18, 'bye': 4, 'handsome': 1, 'finding': 1, 'working': 14, 'towards': 6, 'net': 6, 'mummy': 2, 'boytoy': 8, 'awesome': 10, 'minute': 6, 'xmas': 11, 'radio': 2, 'jus': 21, 'bathe': 7, 'sis': 11, 'using': 3, 'finishes': 3, 'joined': 5, 'league': 1, 'touch': 9, 'deal': 5, 'friend': 20, 'personal': 2, 'week': 37, 'finally': 8, 'completed': 2, 'course': 6, 'itself': 9, 'however': 5, 'suggest': 2, 'stays': 1, 'able': 15, 'ors': 1, 'every': 22, 'stool': 1, 'settled': 4, 'year': 21, 'wishin': 2, 'mrng': 6, 'hav': 15, 'story': 12, 'hamster': 1, 'dead': 4, 'tmr': 20, '1pm': 1, 'orchard': 4, 'mrt': 4, 'kate': 4, 'evening': 15, 'babyjontet': 1, 'txt': 7, 'xxx': 13, 'found': 7, 'enc': 1, 'bucks': 3, 'darlin': 6, 'ive': 6, 'college': 10, 'refilled': 2, 'successfully': 2, 'inr': 2, 'decimal': 16, 'keralacircle': 2, 'prepaid': 2, 'balance': 3, 'transaction': 4, 'goodmorning': 8, 'sleeping': 14, 'alter': 1, 'dat': 23, 'ericsson': 1, 'oso': 15, 'cannot': 3, 'oredi': 8, 'dats': 1, 'straight': 3, 'dogg': 1, 'connection': 2, 'before': 28, 'refund': 1, 'bill': 5, 'both': 9, 'shoot': 2, 'big': 17, 'ready': 21, 'bruv': 1, 'break': 10, 'rewarding': 1, 'semester': 4, 'chat': 4, 'study': 5, 'noe': 12, 'leh': 12, 'sounds': 9, 'match': 3, 'heading': 2, 'draw': 3, 'prediction': 1, 'slept': 3, 'past': 5, 'few': 28, 'nights': 2, 'easy': 10, 'sen': 4, 'selected': 3, 'exam': 7, 'march': 9, 'should': 47, 'use': 18, 'atm': 1, 'register': 1, 'called': 16, 'ubandu': 1, 'installing': 1, 'disk': 1, 'important': 5, 'files': 4, 'system': 4, 'repair': 1, 'shop': 8, 'happen': 12, 'romantic': 3, 'nite': 8, 'scenery': 1, 'appreciate': 4, 'company': 8, 'elama': 1, 'mudyadhu': 1, 'strict': 1, 'than': 22, 'teacher': 3, 'bcoz': 8, 'teaches': 2, 'conducts': 2, 'lessons': 7, 'gandhipuram': 1, 'walk': 6, 'cross': 1, 'road': 6, 'side': 8, 'street': 3, 'rubber': 1, 'battery': 5, 'died': 3, 'printed': 1, 'upstairs': 1, 'closer': 3, 'wil': 6, 'reach': 17, 'theory': 2, 'argument': 4, 'wins': 2, 'loses': 2, 'person': 20, 'argue': 2, 'kick': 2, 'correct': 4, 'tomarrow': 2, 'final': 2, 'hearing': 1, 'laptop': 10, 'case': 10, 'pleassssssseeeeee': 1, 'tel': 7, 'avent': 2, 'sportsx': 1, 'shining': 1, 'meant': 10, 'signing': 2, 'although': 1, 'told': 28, 'into': 16, 'baig': 1, 'face': 8, 'watches': 1, 'watch': 18, 'thanx': 22, 'everything': 18, 'touched': 2, 'commercial': 1, 'website': 3, 'slippers': 2, 'asked': 8, 'kallis': 6, 'bat': 2, 'innings': 2, 'didnt': 14, 'goodnight': 5, 'fix': 2, 'wake': 10, 'dearly': 2, 'sleep': 31, 'ranjith': 2, 'cal': 3, 'drpd': 1, 'deeraj': 1, 'deepak': 1, '5min': 2, 'hold': 8, 'bcums': 4, 'angry': 10, 'wid': 12, 'dnt': 10, 'childish': 5, 'true': 11, 'showing': 7, 'deep': 5, 'affection': 4, 'care': 27, 'luv': 18, 'kettoda': 4, 'manda': 4, 'ups': 1, '3days': 1, 'shipping': 3, 'takes': 7, '2wks': 1, 'other': 27, 'usps': 1, 'lag': 1, 'bribe': 1, 'nipost': 1, 'lemme': 2, 'necessarily': 1, 'expect': 2, 'headin': 2, 'mmm': 2, 'jolt': 2, 'suzy': 1, 'lover': 6, 'parked': 3, 'mini': 1, 'shopping': 10, 'own': 4, 'disturb': 4, 'luton': 1, '0125698789': 1, 'ring': 6, 'dint': 2, 'wana': 7, 'plan': 15, 'trip': 5, 'sometme': 1, 'evo': 1, 'flash': 2, 'jealous': 2, 'sorting': 1, 'narcotics': 1, 'ended': 3, 'sunny': 2, 'rays': 3, 'leaves': 6, 'worries': 5, 'blue': 8, 'bay': 2, 'might': 23, 'objection': 1, 'rob': 1, 'mack': 1, 'theater': 1, 'handed': 1, 'celebrations': 1, 'full': 13, 'swing': 6, 'tool': 2, 'definitely': 4, 'gdeve': 1, 'far': 9, 'okie': 9, 'usual': 6, 'guy': 13, 'passed': 2, 'last': 26, 'ahold': 1, 'anybody': 3, 'throw': 3, 'lets': 8, 'baby': 16, 'cruisin': 1, 'hour': 16, 'fone': 5, 'jenny': 2, 'shall': 21, 'tonite': 7, 'update': 2, 'varunnathu': 1, 'edukkukayee': 1, 'raksha': 1, 'ollu': 1, 'sense': 4, 'gautham': 2, 'stupid': 4, 'cam': 2, 'buzy': 3, 'accidentally': 2, 'message': 33, 'resend': 1, 'unless': 4, 'gurl': 1, 'appropriate': 1, 'hurt': 15, 'tease': 1, 'cry': 2, 'die': 6, 'plz': 14, 'rose': 3, 'grave': 1, 'bslvyl': 5, 'phone': 39, 'somebody': 5, 'high': 4, 'diesel': 1, 'shit': 20, 'shocking': 1, 'scary': 2, 'imagine': 4, 'def': 2, 'somewhere': 5, 'crash': 1, 'taxi': 1, 'fridge': 1, 'meal': 2, 'womdarfull': 1, 'actor': 2, 'remb': 1, 'book': 9, 'jos': 1, 'friendship': 11, 'hanging': 2, 'thread': 1, 'garage': 2, 'keys': 2, 'aren': 2, 'bookshelf': 1, 'accept': 4, 'sister': 8, 'dear1': 2, 'best1': 2, 'clos1': 2, 'lvblefrnd': 2, 'jstfrnd': 2, 'cutefrnd': 2, 'lifpartnr': 2, 'belovd': 3, 'swtheart': 2, 'bstfrnd': 2, 'enemy': 2, '2day': 4, 'normal': 6, 'unique': 1, 'rest': 7, 'mylife': 1, 'wot': 12, 'lost': 9, 'made': 19, 'advance': 5, 'pongal': 4, 'power': 6, 'yoga': 4, 'dunno': 17, 'tahan': 1, 'anot': 1, 'dude': 16, 'afraid': 2, 'cake': 4, 'merry': 7, 'christmas': 6, 'kisses': 1, 'cud': 3, 'ppl': 2, 'gona': 2, 'buses': 2, 'gon': 1, 'waitin': 2, 'pete': 5, 'guild': 1, 'bristol': 2, 'plans': 5, 'flight': 2, 'problem': 17, 'todays': 2, 'sign': 2, 'track': 4, 'record': 1, 'reading': 9, 'women': 2, 'read': 8, 'light': 9, 'apo': 1, 'return': 1, 'immediately': 4, 'chance': 4, 'evaporated': 1, 'violated': 2, 'privacy': 1, 'stealing': 1, 'number': 34, 'employer': 1, 'paperwork': 1, 'report': 2, 'supervisor': 3, 'daaaaa': 1, 'wined': 1, 'dined': 1, 'surfing': 4, 'calling': 9, 'post': 10, '1000s': 1, 'texts': 5, 'wiv': 5, 'caroline': 1, 'favourite': 2, 'bless': 2, 'hiding': 1, 'stranger': 3, 'interested': 3, 'cleared': 1, 'two': 20, 'round': 4, 'gudnite': 2, 'practice': 2, 'dis': 16, 'huiming': 1, 'num': 4, 'small': 5, 'prestige': 1, 'jeremiah': 1, 'iphone': 1, 'apeshit': 1, 'ever': 17, 'misbehaved': 1, 'slap': 2, 'urself': 2, 'fault': 5, 'basically': 1, 'figure': 8, 'alcohol': 3, 'jay': 11, 'safely': 1, 'weed': 7, 'ish': 5, 'minutes': 16, 'ago': 8, 'wtf': 2, 'onam': 1, 'sirji': 1, 'remembered': 3, 'met': 7, 'insurance': 1, 'insha': 1, 'allah': 2, 'rakhesh': 5, 'tata': 1, 'aig': 1, 'tissco': 2, 'tayseer': 2, 'unemployed': 2, 'moment': 4, 'andrews': 1, 'cold': 5, 'posted': 3, 'chikku': 13, 'audrey': 1, 'status': 1, 'forward': 3, 'sunshine': 1, 'dawns': 1, 'refreshed': 1, 'alive': 2, 'breathe': 2, 'air': 5, 'uniform': 1, 'geeee': 3, 'woke': 4, 'wish': 22, 'cuddling': 1, 'spoil': 1, 'min': 14, 'talking': 7, 'agree': 1, 'willing': 4, 'seen': 5, 'recognise': 2, 'happening': 6, 'lindsay': 1, 'years': 9, 'sighs': 4, 'bars': 1, 'ptbo': 2, 'heron': 1, 'payasam': 1, 'rinu': 1, 'brings': 2, 'taught': 1, 'becaus': 1, 'hes': 2, 'verifying': 1, 'project': 7, 'prabu': 1, 'mistake': 4, 'body': 5, 'repairs': 1, 'quite': 19, 'slow': 4, 'tests': 3, 'guide': 3, 'ovulation': 2, 'relax': 1, 'reason': 7, 'followin': 1, 'couple': 7, 'wallet': 1, 'leave': 28, '945': 1, 'owl': 1, 'licks': 2, 'customer': 5, 'fun': 10, 'having': 26, 'huh': 6, 'sat': 18, 'intro': 3, 'pilates': 3, 'kickboxing': 1, 'office': 19, 'lap': 1, 'days': 19, 'shut': 1, 'bout': 9, '30ish': 2, 'performance': 1, 'award': 1, 'calculated': 1, 'current': 2, 'period': 1, 'actually': 15, 'rock': 8, 'putting': 5, 'business': 1, 'put': 18, 'pictures': 4, 'ass': 8, 'facebook': 4, 'picture': 1, 'salam': 1, 'wahleykkum': 1, 'sharing': 1, 'news': 6, 'grace': 1, 'god': 26, 'inshah': 1, 'sometime': 1, 'visitor': 1, 'india': 6, 'change': 12, 'field': 2, 'quickly': 2, 'administrator': 2, 'chechi': 2, 'cream': 1, 'shipped': 1, 'none': 5, 'yep': 6, 'loxahatchee': 2, 'tree': 3, 'burning': 2, 'starts': 5, 'stoners': 1, 'slightly': 1, 'disastrous': 1, 'fav': 1, 'darlings': 1, 'off': 24, 'wld': 2, 'stay': 11, 'drink': 9, 'busetop': 1, 'sender': 2, 'via': 5, 'fullonsms': 4, 'iron': 1, 'thing': 32, 'okies': 1, 'yan': 3, 'jiu': 3, 'skip': 1, 'den': 16, 'blah': 3, 'bring': 12, 'wendy': 1, 'whatsup': 2, 'goal': 1, 'head': 12, 'siva': 1, 'hostel': 3, 'aha': 2, 'receive': 5, 'voice': 5, 'speaking': 2, 'expression': 1, 'sentiment': 1, 'rowdy': 1, 'ful': 1, 'attitude': 1, 'attractive': 1, 'funny': 5, 'irritating': 1, 'aathi': 4, 'urination': 1, 'esplanade': 2, 'mind': 25, 'giving': 4, 'lift': 4, 'wnt': 5, 'bmw': 2, 'urgently': 2, 'vry': 3, 'urgent': 5, 'shortage': 2, 'lacs': 4, 'source': 2, 'arng': 2, 'amt': 3, 'fifteen': 3, 'fucking': 8, 'respond': 2, 'booked': 6, 'ticket': 5, 'hillsborough': 1, 'askin': 3, 'dollars': 4, 'shoul': 1, 'iouri': 1, 'ten': 9, 'applebees': 1, 'journey': 2, 'hasnt': 1, 'mins': 5, 'arrange': 2, 'bhaji': 2, 'cricketer': 2, 'sachin': 2, 'tough': 5, 'supposed': 7, 'oic': 2, 'tot': 6, 'din': 3, 'group': 3, 'werethe': 1, 'monkeespeople': 1, 'monkeyaround': 1, 'howdy': 1, 'gorgeous': 3, 'howu': 1, 'doin': 6, 'foundurself': 1, 'jobyet': 1, 'sausage': 1, 'jen': 3, 'blimey': 1, 'exercise': 1, 'kinda': 7, 'concentration': 1, 'hanks': 1, 'lotsly': 1, 'detail': 1, 'transfer': 2, 'acc': 4, 'optimistic': 1, 'improve': 1, 'oreo': 2, 'truffles': 2, 'amy': 1, 'ure': 3, 'beautiful': 11, 'intelligent': 3, 'woman': 2, 'result': 3, 'consistently': 1, 'kind': 9, 'start': 18, 'asking': 7, 'practicum': 1, 'links': 1, 'ears': 1, 'ttyl': 5, 'isnt': 1, 'bad': 14, 'thru': 5, 'different': 5, 'feeling': 12, 'wavering': 1, 'decisions': 2, 'coping': 1, 'individual': 1, 'heal': 1, 'gives': 4, 'reasons': 2, 'railway': 3, 'princess': 20, 'receiving': 1, 'oral': 1, 'doggy': 3, 'style': 6, 'fave': 3, 'position': 2, 'enjoy': 17, 'roads': 3, 'slippery': 1, 'bike': 1, 'many': 29, 'language': 1, 'screamed': 2, 'enters': 1, 'remove': 4, 'flat': 3, 'rate': 1, 'transfered': 1, 'removed': 1, 'banks': 2, 'differ': 2, 'charges': 3, '9ja': 2, 'details': 8, 'line': 5, 'broken': 1, 'heart': 20, 'cum': 5, 'infront': 1, 'wise': 2, 'tension': 1, 'machi': 1, '8th': 4, 'thinking': 10, 'mcr': 1, 'sec': 5, 'taste': 2, 'jaykwon': 1, 'thuglyfe': 1, 'falconerf': 1, 'win': 7, 'depends': 3, 'quality': 2, 'boye': 3, 'faded': 1, 'glory': 1, 'ralphs': 1, 'fixed': 3, 'dry': 4, 'trade': 2, 'credit': 4, 'card': 4, 'reunion': 1, 'meh': 5, 'nope': 9, 'monday': 6, 'replied': 3, 'accenture': 1, 'confirm': 7, 'jackson': 1, 'rec': 1, 'center': 2, '7ish': 2, 'reache': 1, 'fighting': 3, 'either': 9, 'lose': 15, 'fightng': 3, 'some1': 3, 'dificult': 3, 'nuerologist': 1, 'lolnice': 1, 'fish': 3, 'water': 6, 'bored': 10, 'outside': 10, 'westshore': 1, 'hyde': 1, 'park': 4, 'village': 3, 'near': 6, 'anthony': 1, 'bringing': 2, 'fees': 1, 'rent': 5, 'significance': 1, 'opinion': 5, 'jada': 3, 'kusruthi': 3, 'silent': 6, 'spl': 3, 'character': 4, 'matured': 3, 'stylish': 3, 'simple': 11, 'latest': 2, 'scrounge': 2, 'ammo': 1, 'prabha': 2, 'soryda': 2, 'realy': 5, 'frm': 6, 'sory': 2, 'forgiven': 1, 'jst': 1, 'tat': 3, 'competition': 1, 'transport': 1, 'less': 6, 'problematic': 1, 'join': 6, 'bday': 2, 'definite': 1, 'nos': 1, 'booking': 1, 'fri': 6, 'unconscious': 1, 'children': 3, 'adults': 1, 'behave': 3, 'abnormally': 1, 'ebay': 2, 'elsewhere': 3, 'pickle': 2, 'tacos': 1, 'rude': 1, 'campus': 4, 'mas': 3, 'pretty': 5, 'lady': 4, 'single': 2, 'faggot': 1, 'holiday': 6, 'while': 14, 'hoping': 5, 'l8r': 2, 'malaria': 1, 'bani': 1, 'leads': 1, 'passionate': 3, 'kiss': 15, 'across': 6, 'sea': 8, 'probably': 17, 'fat': 3, 'fingers': 5, 'these': 8, 'buttons': 1, 'ummmmmaah': 2, 'returns': 3, 'tirupur': 1, 'famous': 1, 'quote': 2, 'develop': 2, 'ability': 2, 'listen': 5, 'unconditionally': 1, 'losing': 2, 'temper': 1, 'self': 3, 'confidence': 6, 'married': 3, 'oclock': 1, 'mine': 7, 'bash': 1, 'recovery': 1, 'rather': 5, 'pass': 4, 'cooped': 1, 'hotel': 1, 'invitation': 1, 'cali': 2, 'english': 2, 'bloke': 2, 'weddin': 1, 'omw': 5, 'btw': 4, 'alibi': 1, 'cutting': 1, 'sink': 1, 'through': 6, 'paces': 1, 'cage': 1, 'cock': 2, 'surrounded': 1, 'reminding': 2, 'owns': 2, 'cuck': 1, 'hurry': 2, 'deficient': 1, 'three': 4, 'acknowledgement': 1, 'astoundingly': 1, 'tactless': 1, 'generally': 2, 'faggy': 1, 'demand': 1, 'blood': 7, 'oath': 1, 'warm': 4, 'milk': 2, 'magic': 1, 'loose': 2, 'pan': 2, 'cheap': 2, 'perhaps': 1, 'silly': 1, 'likely': 3, 'causes': 1, 'mutations': 1, 'sunscreen': 1, 'essential': 2, 'thesedays': 1, 'online': 10, 'pics': 5, 'aiyo': 3, 'mei': 1, 'fast': 9, 'workin': 4, 'bao': 1, 'sugardad': 1, 'gee': 5, 'brownie': 1, 'geeeee': 1, 'barely': 4, 'fuck': 16, '2mrw': 2, 'ninish': 1, 'icky': 1, 'american': 2, 'freek': 1, 'callin': 1, 'oooh': 1, 'ridden': 1, 'gym': 6, 'whatever': 8, 'smiles': 1, 'daddy': 6, 'scream': 5, 'dick': 1, 'missy': 1, 'yar': 9, 'mum': 10, 'sch': 9, 'clean': 9, 'lab': 2, 'goggles': 1, 'door': 3, 'arguing': 1, 'arngd': 1, 'marriage': 6, 'walkin': 1, 'unfortuntly': 1, 'snake': 3, 'bites': 1, 'dancing': 2, 'frnt': 1, 'sayin': 1, 'bite': 3, 'izzit': 3, 'wife': 14, 'kids': 6, 'scotland': 2, 'jjc': 1, 'tendencies': 1, 'headache': 2, 'quit': 3, 'jazz': 3, 'yogasana': 5, 'meive': 1, 'hardly': 2, 'gotany': 1, 'srsly': 1, 'grand': 2, 'prix': 1, 'choose': 5, 'stands': 1, 'ends': 4, 'nitz': 1, 'exhausted': 3, 'train': 5, 'pie': 1, 'present': 2, 'blastin': 1, 'tsunamis': 1, 'occur': 1, 'rajnikant': 1, 'stopped': 2, 'swimming': 1, 'indian': 4, 'ocean': 1, 'noon': 7, 'bridgwater': 1, 'banter': 1, 'neva': 7, 'imma': 5, 'somethin': 3, 'valentine': 4, 'game': 6, 'answers': 1, 'ques': 1, 'colour': 3, 'suits': 1, 'dependents': 1, 'thanx4': 1, 'cer': 1, 'often': 2, 'future': 2, 'valentines': 5, 'hundreds': 1, 'handsomes': 1, 'beauties': 1, 'aunties': 1, 'uncles': 2, '1st': 6, 'shock': 1, 'shuhui': 4, 'leona': 3, 'reaction': 2, 'family': 10, 'happiness': 6, 'snow': 8, 'weather': 3, 'together': 7, 'friendships': 1, 'grow': 1, 'dismay': 1, 'alex': 6, 'concerned': 1, 'pub': 7, 'bud': 2, 'drinks': 2, 'useful': 2, 'hear': 17, 'officially': 2, 'paid': 1, 'market': 1, 'tootsie': 1, 'pop': 1, 'longer': 3, 'darren': 6, 'forwarded': 4, 'seventeen': 1, 'pounds': 1, 'seven': 1, 'hundred': 1, 'sweetheart': 1, 'biola': 1, 'login': 2, 'dad': 10, 'fetching': 1, 'hours': 9, 'restock': 1, 'thanksgiving': 2, 'sound': 4, 'effects': 1, 'brighten': 1, 'wee': 1, 'thursday': 3, 'allo': 1, 'braved': 1, 'taken': 4, 'trains': 1, 'triumphed': 1, 'ham': 2, 'jolly': 1, 'cartoon': 3, 'listening': 2, 'music': 2, 'eve': 9, 'temple': 3, 'church': 3, 'uncomfortable': 1, 'email': 6, 'gentle': 1, 'sonetimes': 1, 'rough': 1, 'starting': 2, 'panic': 1, 'tuesday': 2, 'wesleys': 1, 'town': 11, 'bet': 3, 'hella': 3, 'drugs': 6, 'drug': 5, 'dealer': 1, 'impatient': 2, 'sun': 10, 'earth': 2, 'cloud': 1, 'river': 2, 'evng': 4, 'wikipedia': 1, 'under': 3, 'lays': 2, 'envelope': 4, 'paper': 8, 'repent': 1, 'fetch': 5, 'prepare': 2, 'positions': 1, 'kama': 1, 'sutra': 1, 'nange': 1, 'bakra': 1, 'kalstiya': 1, 'lakhs': 1, 'belly': 4, 'laugh': 5, 'ditto': 1, 'saying': 10, 'peace': 3, 'knw': 7, 'wetherspoons': 1, 'piggy': 1, 'awake': 2, 'freaky': 1, 'yelling': 1, 'scrappy': 1, 'lonely': 2, 'hex': 1, 'explain': 2, 'sdryb8i': 1, 'king': 2, 'crying': 1, 'building': 2, 'map': 3, 'imprtant': 1, 'tomorw': 1, 'cherthala': 1, 'cochin': 2, 'bfore': 1, 'accordingly': 2, 'tmorow': 1, 'engaged': 1, 'ans': 2, 'torch': 3, 'bold': 3, 'farm': 2, '1405': 1, '1680': 1, '1843': 1, 'law': 1, 'purchase': 1, 'box': 1, 'poop': 1, 'looks': 5, 'gpu': 1, 'entrepreneurs': 1, 'corporation': 1, 'gap': 3, 'prevent': 1, 'dehydration': 1, 'fluids': 1, 'weird': 3, 'idea': 6, 'away': 8, 'trek': 1, 'harri': 1, 'drivin': 2, 'height': 3, 'aeronautics': 2, 'professors': 2, 'wer': 6, 'calld': 2, 'sit': 3, 'aeroplane': 2, 'aftr': 5, 'students': 6, 'dey': 4, 'hurried': 2, 'datz': 2, 'seems': 3, 'timing': 3, 'shitstorm': 1, 'attributed': 1, 'stress': 1, 'dorm': 2, 'menu': 6, 'sell': 6, 'sth': 1, 'specs': 1, 'membership': 1, 'px3748': 1, 'macha': 1, 'upset': 2, 'assume': 3, 'mindset': 1, 'anytime': 2, 'wondar': 1, 'flim': 1, 'cookies': 1, 'jelly': 1, 'running': 3, 'admit': 2, 'mad': 2, 'correction': 2, 'scrumptious': 1, 'wants': 10, 'dao': 1, 'order': 4, 'half8th': 1, 'exactly': 3, 'jide': 1, 'visiting': 1, 'spring': 2, 'yay': 3, 'steak': 1, 'twice': 4, 'neglect': 1, 'msgs': 6, 'opportunity': 3, 'add': 3, 'prayers': 1, 'mayb': 4, 'rite': 9, 'faster': 3, 'gals': 3, 'attached': 1, 'glad': 5, 'hadn': 1, 'clocks': 1, 'shouted': 2, 'realised': 1, 'wahay': 1, 'shorter': 3, 'ladies': 1, 'gaze': 1, 'eyes': 3, '930': 2, 'spoken': 2, 'gist': 1, 'gimme': 2, 'lip': 1, 'caveboy': 1, 'library': 6, 'confused': 1, 'holla': 3, 'anyone': 11, 'spare': 2, 'top': 4, 'faith': 1, 'makes': 15, 'possible': 5, 'vibrate': 1, 'acting': 2, 'grandmas': 1, 'hungover': 1, 'gua': 1, 'faber': 1, 'yest': 4, 'wishing': 5, 'goin': 11, 'meetin': 2, 'wonder': 7, 'tis': 1, 'dramatic': 1, 'schools': 2, 'closed': 5, 'apparently': 3, 'drive': 7, 'inch': 2, 'anywhere': 3, 'damn': 5, 'hunting': 1, 'drunkard': 1, 'wats': 4, 'idc': 1, 'weaseling': 1, 'row': 2, 'space': 2, 'picking': 9, 'trash': 1, 'smokes': 2, 'begging': 1, 'lovely': 10, 'sing': 1, 'slave': 6, 'punish': 1, 'beerage': 1, 'randomlly': 1, 'within': 4, 'opening': 2, 'couldn': 4, 'fixes': 1, 'spelling': 1, 'diff': 1, 'word': 5, 'enjoyed': 2, 'fondly': 1, 'bein': 2, 'thot': 2, 'dogbreath': 1, 'sounding': 1, 'jan': 2, 'omg': 3, 'weighed': 1, 'woohoo': 1, 'uncountable': 1, 'dictionary': 4, 'pieces': 3, 'petey': 1, 'whereare': 1, 'friendsare': 1, 'thekingshead': 1, 'canlove': 1, 'nic': 1, 'appt': 3, 'dled': 1, 'imp': 2, 'ain': 3, 'smokin': 1, 'boooo': 1, 'bec': 2, 'ugh': 9, 'nervous': 1, 'costumes': 1, 'gift': 5, 'yowifes': 1, 'hint': 3, 'borrow': 1, 'bag': 3, 'ones': 4, 'model': 4, 'youi': 1, 'galileo': 1, 'dobby': 2, 'responding': 2, 'boo': 5, 'enjoyin': 1, 'yourjob': 1, 'gettin': 7, 'hunny': 3, 'llspeak': 1, 'soonlots': 1, 'loveme': 1, 'xxxx': 3, 'starshine': 1, 'ache': 2, 'sips': 1, 'cappuccino': 2, 'teasing': 4, 'bits': 1, 'hahaha': 1, 'brain': 1, 'turned': 1, 'green': 4, 'burial': 1, 'mojibiola': 1, 'mate': 4, 'hol': 1, 'ages': 2, 'rvx': 1, 'skyped': 2, 'sura': 4, 'given': 3, 'ultimatum': 2, 'countin': 2, 'aburo': 2, 'surely': 3, 'successful': 1, 'charge': 5, 'inconsiderate': 2, 'nag': 2, 'recession': 2, 'hence': 2, 'soo': 1, 'understand': 5, '2morrow': 1, 'comprehensive': 1, 'prashanthettan': 1, 'mother': 3, 'meanwhile': 3, 'suite': 1, 'xavier': 3, 'seconds': 3, 'warning': 1, 'samantha': 1, 'playing': 3, 'guitar': 1, 'impress': 1, 'doug': 1, 'realizes': 1, 'stomach': 2, 'trauma': 1, 'swear': 1, 'matter': 5, 'shoes': 1, 'wan': 23, 'inner': 1, 'tigress': 1, 'activate': 1, 'version': 3, 'poor': 4, 'urfeeling': 1, 'bettersn': 1, 'probthat': 1, 'overdose': 1, 'careful': 2, 'spk': 2, 'lovejen': 2, 'returned': 2, 'hai': 5, 'ana': 1, 'sathy': 1, 'rto': 1, 'spoons': 1, 'named': 2, 'tampa': 5, 'genius': 2, 'whenever': 5, 'connections': 1, 'sort': 6, 'lotta': 1, 'corvettes': 1, 'lately': 1, 'consider': 2, 'walls': 3, 'bunkers': 1, 'peaceful': 1, 'philosophical': 1, 'hole': 1, 'saved': 2, 'drop': 7, 'cuddle': 1, 'nap': 2, 'atleast': 1, 'otherwise': 6, 'shakespeare': 1, 'shesil': 2, 'castor': 2, 'knew': 5, 'woul': 1, 'lead': 3, 'wanting': 2, 'curfew': 1, 'gibe': 1, 'midnight': 4, 'getsleep': 1, 'studdying': 1, 'ear': 1, 'training': 3, 'massages': 1, 'oil': 1, 'sup': 3, 'yoyyooo': 1, 'permissions': 1, 'mac': 1, 'usb': 2, 'gibbs': 2, 'unsold': 4, 'mike': 1, 'hussey': 1, 'failed': 2, 'sad': 12, 'unbelievable': 1, 'faglord': 1, 'murder': 4, 'nutter': 1, 'cutter': 1, 'ctter': 1, 'cttergg': 1, 'cttargg': 1, 'ctargg': 1, 'ctagg': 1, 'thus': 1, 'superb': 1, 'grateful': 1, 'happier': 1, 'agents': 1, 'experiment': 1, 'due': 1, 'several': 1, 'outstanding': 1, 'invoices': 1, 'teach': 3, 'smell': 1, 'tobacco': 1, 'derek': 3, 'taylor': 2, 'assumed': 1, 'worst': 1, 'charles': 1, 'plus': 10, 'grinule': 1, 'greet': 2, 'white': 3, 'fudge': 1, 'oreos': 1, 'stores': 1, 'zaher': 1, 'nauseous': 1, 'pissed': 2, 'sweets': 2, 'pig': 2, 'dieting': 1, 'chip': 1, 'reminder': 1, 'iam': 4, 'addicted': 2, 'msging': 1, 'wrong': 7, 'photo': 2, 'registered': 3, 'yck': 1, 'ashley': 1, 'avalarr': 1, 'hollalater': 1, 'attend': 2, 'rounds': 1, 'blogging': 1, 'magicalsongs': 1, 'blogspot': 1, 'diet': 2, 'ate': 3, 'slices': 1, 'kvb': 1, 'alternative': 1, 'term': 2, 'congratulations': 1, 'ore': 1, 'owo': 1, 'moments': 2, 'fro': 1, 'wherever': 1, 'samus': 1, 'shoulders': 1, 'wear': 3, 'jeans': 2, 'fever': 3, 'vomitin': 1, 'stuffed': 1, 'bleh': 2, 'least': 6, 'writhing': 1, 'tons': 1, 'paypal': 1, 'voila': 1, 'pockets': 1, 'theyre': 1, 'places': 3, 'medical': 2, 'sorta': 1, 'blown': 1, 'recently': 3, 'scores': 1, 'sophas': 1, 'secondary': 1, 'application': 1, 'applying': 1, 'ogunrinde': 1, 'expensive': 1, 'photos': 2, 'lodging': 1, 'chk': 1, 'dict': 1, 'shb': 1, 'truth': 5, 'against': 7, 'gravity': 3, 'carefully': 3, 'feels': 8, 'heavy': 5, 'bowl': 3, 'brand': 1, 'decision': 2, 'simpler': 2, 'magical': 3, 'welp': 2, 'retired': 1, 'code': 1, 'natwest': 1, 'chad': 1, 'gymnastics': 1, 'site': 3, 'christians': 1, 'necklace': 1, 'token': 1, 'liking': 1, 'aptitude': 1, 'horse': 1, 'racing': 2, 'earlier': 9, 'chicken': 2, 'rice': 2, 'closes': 2, 'wrongly': 1, 'crap': 2, 'borin': 1, 'boggy': 1, 'boring': 2, 'biatch': 1, 'nxt': 4, 'hesitate': 1, 'weakness': 1, 'notebook': 1, 'salary': 3, 'chocolate': 1, 'potential': 2, 'talent': 2, 'reckon': 1, 'eightish': 1, 'carpark': 1, 'fuckin': 1, 'dropped': 2, 'loving': 5, 'yun': 4, 'ubi': 3, '67441233': 1, 'irene': 1, 'ere': 1, 'bus8': 1, '382': 1, 'cres': 1, 'tech': 2, '6ph': 1, '5wkg': 1, 'butt': 2, 'sore': 2, '26th': 1, 'july': 1, 'relaxing': 1, '7am': 1, 'party': 4, '5ish': 1, 'stripes': 1, 'skirt': 1, 'miracle': 6, 'jesus': 3, 'blessed': 2, 'escalator': 1, 'quiet': 1, 'beth': 1, 'aunts': 1, 'charlie': 1, 'helen': 1, 'heard': 4, 'syllabus': 1, '30pm': 1, 'poyyarikatur': 1, 'kolathupalayam': 1, 'unjalur': 1, 'erode': 1, 'hero': 1, 'apt': 1, 'kerala': 4, 'fit': 1, 'terrible': 3, 'fan': 2, 'meat': 1, 'lovers': 2, 'supreme': 1, 'regret': 3, 'cudnt': 1, 'drove': 1, 'ctla': 1, 'mobile': 5, 'ente': 1, 'ishtamayoo': 1, 'bakrid': 1, 'exe': 1, 'glorious': 1, 'anniversary': 1, 'finds': 1, 'content': 1, 'prey': 2, 'coaxing': 1, 'images': 1, 'fond': 1, 'souveniers': 1, 'cougar': 1, 'pen': 2, 'pattern': 1, 'weekends': 2, 'throat': 2, 'scratches': 1, 'plm': 1, 'asleep': 2, 'foreign': 2, 'stamps': 2, 'country': 2, 'lecture': 3, 'sheffield': 2, 'nanny': 1, 'raise': 1, 'zoe': 1, 'shitin': 1, 'defo': 1, 'hardest': 1, '2morow': 1, 'millions': 1, 'lekdog': 1, 'setting': 1, 'filling': 1, 'loverboy': 3, 'blankets': 1, 'sufficient': 1, 'thx': 2, 'flirt': 3, 'nyt': 5, 'edison': 1, 'rightly': 1, 'fool': 1, 'questions': 4, 'speechless': 1, 'during': 4, 'viva': 1, 'gnt': 1, 'atten': 1, 'roast': 3, 'concentrate': 2, 'educational': 1, 'career': 1, 'walked': 2, 'serious': 3, 'soiree': 1, 'june': 2, '3rd': 4, 'sells': 2, 'data': 1, 'analysis': 1, 'thesis': 2, 'belligerent': 1, 'hiya': 4, 'april': 3, 'les': 1, 'rudi': 1, 'yrs': 3, 'snoring': 1, 'drunk': 1, 'sends': 1, 'ink': 1, '515': 1, 'female': 1, 'throwing': 1, 'deciding': 2, 'technical': 2, 'support': 3, 'process': 4, 'networking': 1, 'prepared': 2, 'finalise': 1, 'travel': 1, 'visit': 4, 'works': 1, 'bitch': 3, 'dentist': 1, 'bathing': 2, 'lul': 1, 'juicy': 1, 'gossip': 1, 'nurses': 1, 'thinks': 4, 'shes': 1, 'obese': 1, 'oyea': 1, 'ami': 1, 'parchi': 1, 'kicchu': 1, 'kaaj': 1, 'korte': 1, 'iccha': 1, 'korche': 1, 'tul': 1, 'movies': 6, 'dvd': 1, 'copies': 1, 'sculpture': 1, 'convey': 4, 'regards': 3, 'surya': 1, 'vijay': 2, 'pokkiri': 1, 'pic': 4, 'dearer': 2, 'dem': 2, 'attraction': 1, 'thoughts': 1, 'breath': 1, 'sorrows': 1, 'fight': 2, 'craziest': 1, 'proove': 1, 'planet': 1, 'singing': 1, 'praises': 1, 'curry': 2, 'makiing': 1, 'sambar': 1, 'ndship': 1, 'needle': 1, 'clock': 3, 'evn': 2, 'itz': 1, '4few': 1, 'alwys': 1, 'conected': 1, 'spatula': 1, 'hands': 4, 'goto': 1, 'doctor': 4, 'complexities': 1, 'freely': 1, 'taxes': 1, 'outrageous': 1, 'tomorro': 1, 'ryder': 1, 'fret': 1, 'strips': 1, 'postal': 1, 'gifts': 1, 'cliff': 1, 'interesting': 4, 'wrking': 1, 'uni': 3, 'depressed': 2, 'sittin': 1, 'wind': 2, 'drops': 1, 'black': 6, 'aiyah': 5, 'hen': 1, 'italian': 3, 'grins': 6, 'smoked': 1, 'weeks': 2, 'math': 1, 'dhoni': 1, 'rocks': 2, 'teju': 1, 'hourish': 1, 'ground': 1, 'amla': 1, 'durban': 1, 'convenience': 1, 'evaluation': 1, 'cancel': 1, 'cheyyamo': 1, 'aiyar': 1, 'catching': 2, 'throws': 1, 'gal': 5, 'falls': 2, 'brothers': 1, 'whos': 2, 'gay': 1, 'errors': 1, 'difficulties': 1, 'howz': 3, 'tau': 1, 'sar': 1, 'piah': 1, 'wearing': 2, 'film': 3, 'shade': 1, 'copied': 1, 'raining': 3, 'station': 3, 'tank': 2, 'sitter': 1, 'kaitlyn': 1, 'adult': 1, 'danger': 1, 'peeps': 1, 'comment': 1, 'veggie': 1, '2000': 1, 'neighbors': 1, 'computerless': 1, 'hot': 5, 'balloon': 1, 'silently': 2, 'drms': 1, 'melody': 1, 'horrible': 3, 'macs': 1, 'toot': 1, 'fantastic': 2, 'bigger': 3, 'hme': 1, 'islands': 1, 'chennai': 9, 'velachery': 1, 'flippin': 1, 'breaking': 1, 'cstore': 1, 'annoying': 2, 'hangin': 1, 'makin': 1, 'lodge': 1, 'worrying': 1, 'shame': 2, 'quizzes': 1, 'popcorn': 1, 'moan': 4, 'thin': 1, 'arguments': 1, 'fed': 1, 'himso': 1, '2go': 3, 'neft': 2, 'reference': 3, 'credited': 2, 'beneficiary': 2, 'tuition': 3, 'understanding': 1, 'appreciated': 1, 'semi': 1, 'apart': 1, 'strong': 2, 'arms': 2, 'maaaan': 1, 'guessin': 1, 'walmart': 1, 'ilol': 1, 'personally': 1, 'wuldnt': 1, 'mite': 4, 'creepy': 1, 'lunchtime': 1, 'organise': 1, 'complete': 3, 'passable': 1, 'score': 1, 'apply': 2, 'phd': 1, '5years': 1, 'easier': 2, 'prakesh': 1, 'apps': 2, 'rofl': 2, 'betta': 1, 'invest': 2, 'anti': 3, 'aging': 1, 'products': 1, '1hr': 2, 'delay': 1, 'submitting': 1, 'snatch': 1, 'purse': 1, 'drivby': 1, '0quit': 1, 'edrunk': 1, 'iff': 1, 'pthis': 1, 'senrd': 1, 'dnot': 1, 'dancce': 1, 'drum': 1, 'basq': 1, 'ihave': 1, '2nhite': 1, 'ros': 1, 'xxxxxxx': 1, 'morn': 2, 'relieved': 1, 'westonzoyland': 1, 'greatness': 1, 'europe': 1, 'nobody': 5, 'chinese': 3, 'docs': 2, 'songs': 2, 'havin': 1, 'goin2bed': 1, 'only1more': 1, 'hun': 2, '2nite': 4, 'every1': 1, 'ava': 1, 'goodtime': 1, 'oli': 1, 'rang': 1, 'melnite': 1, 'ifink': 1, 'sorted': 2, 'everythin': 1, 'mon': 3, 'l8rs': 1, 'flip': 1, 'shun': 1, 'bian': 1, 'glass': 1, 'exhibition': 1, 'nino': 1, 'himself': 1, 'cbe': 3, 'honey': 2, 'service': 1, 'accounts': 1, 'executive': 2, 'picked': 3, 'downstem': 1, 'wahala': 1, 'inperialmusic': 1, 'listening2the': 1, 'weirdest': 1, 'leafcutter': 1, 'john': 7, 'insects': 1, 'molested': 1, 'plumbing': 1, 'remixed': 1, 'evil': 1, 'acid': 1, 'didntgive': 1, 'bellearlier': 1, 'bedbut': 1, 'thepub': 1, 'l8tr': 1, 'uwana': 1, 'jenxxx': 1, 'exact': 2, 'tee': 2, 'cheery': 1, 'cell': 2, 'thts': 4, 'collected': 1, 'dough': 1, 'control': 1, 'weirdo': 1, 'mode': 7, 'stalk': 1, 'profiles': 1, 'jerry': 1, 'irritates': 1, 'fails': 1, 'express': 1, 'drinkin': 2, 'wondering': 5, 'others': 4, 'dog': 3, 'tour': 1, '9am': 1, '5pm': 1, 'pax': 1, 'deposit': 1, 'jap': 1, 'disappeared': 1, 'birthdate': 1, 'certificate': 1, 'publish': 1, 'secret': 3, 'dreams': 5, 'nydc': 2, 'wheellock': 1, 'destination': 1, 'fifty': 1, 'daily': 1, 'favour': 2, 'settling': 1, 'happenin': 1, 'ola': 2, 'cocksuckers': 1, 'ipads': 1, 'worthless': 1, 'garbage': 1, 'novelty': 1, 'items': 1, 'fran': 3, 'broke': 2, 'knackered': 2, 'janx': 1, 'dads': 1, 'designation': 1, 'software': 1, 'developer': 1, 'jokin': 1, 'spirit': 1, 'shattered': 1, 'alrite': 4, 'idiot': 1, 'girlie': 1, 'colours': 1, 'darker': 1, 'styling': 1, 'whenevr': 2, 'gray': 1, 'remembr': 2, 'listn': 1, 'watevr': 1, 'shd': 5, 'minus': 1, 'between': 13, 'paragraphs': 1, 'coveragd': 1, 'area': 2, 'vasai': 1, 'retard': 1, 'bathroom': 1, 'february': 3, 'rush': 2, 'icic': 1, 'syria': 1, 'canada': 1, 'extra': 4, 'cares': 1, 'goodnoon': 1, 'gauge': 1, 'patty': 2, 'interest': 2, 'completing': 1, 'chill': 1, '6hrs': 2, 'surgical': 1, 'emergency': 1, 'unfolds': 1, 'frens': 4, 'korean': 1, 'fredericksburg': 1, 'que': 1, 'pases': 1, 'buen': 1, 'tiempo': 1, 'chillin': 2, 'super': 3, 'theres': 1, 'tmrw': 2, 'compass': 1, 'soul': 2, 'gnun': 1, 'way2sms': 1, 'baaaaabe': 1, 'misss': 1, 'youuuuu': 1, 'ned': 1, 'convince': 1, 'tht': 4, 'witot': 1, 'hurting': 2, 'main': 1, 'luck': 2, 'sweetie': 1, 'blackberry': 2, 'buyer': 1, 'pple': 4, 'marry': 3, 'becz': 1, 'undrstndng': 1, 'avoids': 1, 'problems': 3, 'chain': 2, 'suffer': 1, 'whn': 2, 'arrested': 3, 'suntec': 2, 'steamboat': 1, 'dance': 2, 'moji': 2, 'seem': 1, 'forgive': 1, 'yahoo': 3, 'messenger': 2, 'reaching': 2, 'bbq': 1, '6ish': 1, 'welcome': 1, 'everyso': 1, 'panicks': 1, 'fill': 3, 'bar': 2, 'write': 4, 'cover': 4, 'screen': 3, 'gently': 3, 'auntie': 1, 'huai': 1, 'juan': 1, 'tlk': 2, 'ideal': 1, 'path': 1, 'appear': 1, 'front': 1, 'paths': 1, 'walking': 4, 'arm': 1, 'shot': 2, 'reserve': 1, 'thirunelvali': 1, 'tirunelvali': 1, 'tackle': 1, 'storming': 1, 'phne': 1, 'meaning': 2, 'margaret': 1, 'girlfrnd': 2, 'grahmbell': 1, 'invnted': 1, 'telphone': 1, 'moral': 3, '4get': 1, 'popped': 2, 'tonght': 1, 'ploughing': 1, 'pile': 1, 'ironing': 1, 'chinky': 1, 'players': 2, 'effect': 1, 'aust': 1, 'cafe': 3, 'recharged': 1, 'kidding': 2, 'papa': 1, 'shld': 1, 'stretch': 1, 'detailed': 1, 'sinco': 2, 'payee': 2, 'icicibank': 2, 'enter': 3, 'urn': 4, 'beware': 2, 'frauds': 2, 'share': 2, 'disclose': 2, 'vote': 1, 'caring': 2, 'losers': 1, 'kaiez': 1, 'option': 2, 'beta': 1, 'practicing': 1, 'babies': 1, 'noncomittal': 1, 'beneath': 1, 'pale': 1, 'moon': 2, 'goodnite': 1, 'snickering': 1, 'tells': 2, 'totally': 3, 'chords': 1, 'rem': 2, 'silver': 1, 'lmao': 5, 'silence': 1, 'currently': 1, 'exams': 1, 'revision': 2, 'boyf': 1, 'interviw': 1, 'exeter': 2, 'spreadsheet': 1, 'whose': 1, 'determine': 1, 'entire': 1, 'coat': 2, 'painful': 2, 'everybody': 2, 'recognises': 1, 'alone': 5, 'wisheds': 1, 'intrepid': 1, 'duo': 1, 'missin': 3, 'guilty': 1, 'aiya': 3, 'cardiff': 1, 'fact': 4, 'addie': 1, 'tues': 2, 'wed': 4, 'breeze': 1, 'bright': 2, 'fresh': 1, 'flower': 2, 'twittering': 1, 'birds': 2, 'restaurant': 2, 'ducking': 1, 'chinchillas': 1, 'function': 1, 'headstart': 1, 'desperate': 1, 'rummer': 1, 'flying': 1, 'monkeys': 2, 'certainly': 2, 'thanks2': 1, 'rajini': 1, 'practical': 2, 'spys': 1, 'replying': 2, 'mails': 2, 'yalru': 1, 'lyfu': 2, 'astne': 1, 'innu': 1, 'mundhe': 1, 'lyf': 2, 'ali': 2, 'halla': 1, 'bilo': 1, 'program': 1, 'edhae': 1, 'ovr': 1, 'vargu': 1, 'meow': 2, 'twelve': 2, 'aah': 1, 'fall': 3, 'prone': 1, 'permission': 1, 'wonders': 3, '7th': 3, '6th': 3, '5th': 3, '4th': 4, 'personality': 3, 'nature': 4, 'dose': 1, 'tablet': 1, 'incomm': 1, 'blake': 2, 'lotr': 1, 'keeping': 3, 'google': 4, 'maps': 1, 'tiring': 1, 'modules': 1, 'concentrating': 1, 'browsin': 1, 'compulsory': 1, 'purity': 3, 'musthu': 2, 'investigate': 1, 'vomit': 2, 'aint': 4, 'sha': 3, 'vitamin': 1, 'centre': 3, 'crucial': 1, 'host': 1, 'based': 1, 'idps': 1, 'linux': 1, 'systems': 1, 'total': 1, 'video': 1, 'converter': 1, 'testing': 1, 'sayy': 1, 'loved': 8, 'except': 3, 'nit': 1, 'leanne': 1, 'eight': 2, 'file': 2, 'format': 1, 'disc': 1, 'internet': 2, 'hows': 3, 'champ': 1, 'glasgow': 1, 'congrats': 4, 'lovin': 1, 'corect': 1, 'speling': 1, 'sarcasm': 2, 'forum': 1, 'ron': 2, 'cts': 1, 'employee': 1, 'aunt': 2, 'nike': 1, 'sooo': 1, 'screaming': 4, 'shouting': 1, 'receipt': 2, 'dang': 1, 'unfortunately': 2, 'airport': 3, 'difficult': 5, 'earliest': 1, 'nordstrom': 1, 'konw': 1, 'waht': 1, 'rael': 1, 'gving': 1, 'yuo': 2, 'exmpel': 1, 'jsut': 1, 'ese': 1, 'tihs': 2, 'evrey': 1, 'splleing': 1, 'wrnog': 1, 'sitll': 1, 'raed': 1, 'wihtuot': 1, 'ayn': 1, 'mitsake': 1, 'conference': 1, 'degree': 1, 'joining': 1, 'finance': 1, 'prospects': 2, 'bleak': 1, 'filled': 1, 'shant': 1, 'jia': 1, 'bishan': 1, 'nearer': 1, 'sux': 2, 'raiden': 1, 'buff': 3, 'south': 4, 'preferably': 2, 'kegger': 2, 'totes': 1, 'pierre': 1, 'cardin': 1, 'costs': 2, 'sale': 2, 'rhythm': 2, 'establish': 1, 'truro': 1, 'ext': 1, 'gas': 5, 'gang': 2, 'adventure': 1, 'ice': 1, 'cloth': 1, 'pack': 4, 'tablets': 2, 'sunroof': 1, 'excellent': 5, 'sub': 1, 'finishing': 3, 'doors': 2, 'wifi': 1, 'blanked': 1, 'image': 1, 'rumour': 1, 'kalainar': 1, 'thenampet': 1, 'nosy': 1, 'idk': 3, 'reacting': 1, 'freaked': 1, 'whom': 2, 'satanic': 1, 'imposter': 1, 'destiny': 1, 'companion': 1, 'chef': 1, 'listener': 1, 'organizer': 1, 'boyfriend': 1, 'sympathetic': 1, 'athletic': 1, 'courageous': 1, 'determined': 1, 'dependable': 1, 'psychologist': 1, 'pest': 1, 'exterminator': 1, 'psychiatrist': 1, 'healer': 1, 'stylist': 1, 'driver': 2, 'aaniye': 1, 'pudunga': 1, 'venaam': 1, 'brothas': 1, 'chasing': 2, 'chez': 1, 'jules': 1, 'hhahhaahahah': 1, 'nig': 1, 'leonardo': 1, 'kicks': 2, '2years': 1, 'strain': 1, 'dime': 2, 'withdraw': 1, 'anyhow': 1, 'falling': 2, 'force': 3, 'smeone': 2, 'millers': 1, 'fire': 1, 'spark': 1, 'flame': 2, 'rawring': 1, 'xoxo': 1, 'somewhr': 1, 'perfect': 3, 'crushes': 1, 'honeymoon': 1, 'outfit': 1, 'propose': 1, 'blame': 2, 'gods': 1, 'blessings': 1, 'collect': 3, 'cheque': 1, 'leo': 1, 'haul': 1, 'wildlife': 1, 'want2come': 1, 'that2worzels': 1, 'wizzle': 1, 'dippeditinadew': 1, 'lovingly': 1, 'itwhichturnedinto': 1, 'gifted': 1, 'tomeandsaid': 1, 'shanghai': 1, '21st': 1, 'instead': 4, 'cya': 1, 'freezing': 1, '645': 1, 'thnx': 1, 'sef': 1, 'darling': 1, 'anjie': 1, 'batch': 1, 'fring': 1, 'app': 1, 'flaky': 1, 'sooooo': 1, 'living': 2, 'laughing': 3, 'winning': 1, 'tooo': 1, 'nte': 1, 'confuses': 1, 'wating': 1, 'talents': 1, '6pm': 2, 'animal': 1, 'buzz': 5, 'adoring': 1, 'brought': 1, 'shiny': 1, 'warming': 1, 'constant': 2, 'cared': 1, 'wasn': 5, 'surprised': 1, 'french': 1, 'fooled': 1, 'comedy': 1, 'keen': 1, 'switch': 1, 'dammit': 1, 'wright': 1, 'fly': 1, 'somewhat': 1, 'event': 2, 'laden': 1, 'wrecked': 1, 'six': 1, 'spontaneously': 1, 'goodevening': 1, 'lei': 10, 'waking': 4, 'partnership': 2, 'mostly': 2, 'inside': 3, 'spageddies': 1, 'phasing': 1, 'fourth': 1, 'dimension': 1, 'meaningful': 1, 'lines': 1, 'compromised': 2, 'mornin': 1, 'dub': 1, 'toughest': 2, 'unspoken': 1, 'ideas': 2, 'sight': 3, 'remain': 1, 'maintain': 1, 'jas': 1, 'squatting': 1, 'cramps': 1, 'nan': 1, 'sonathaya': 1, 'soladha': 1, 'raping': 1, 'dudes': 1, 'poker': 1, 'weightloss': 1, 'mushy': 1, 'embarrassed': 1, 'stash': 1, 'ran': 3, 'priya': 1, 'father': 6, 'messy': 2, 'kilos': 1, 'accidant': 1, 'tookplace': 1, 'ghodbandar': 1, 'traffic': 1, 'moves': 2, 'slovely': 1, 'slip': 1, 'wkg': 1, 'nus': 1, 'specialise': 1, 'wad': 1, 'likes': 2, 'dislikes': 3, 'keeps': 1, 'queen': 3, 'desparately': 1, 'fren': 4, 'promises': 3, 'gotten': 2, 'stereo': 1, 'unknown': 2, 'album': 2, 'classmates': 1, 'fires': 1, 'missionary': 1, 'hook': 4, 'standing': 1, 'entertaining': 1, 'hugh': 1, 'laurie': 1, 'stick': 2, 'indeed': 1, 'praps': 1, 'jon': 1, 'bin': 3, 'spain': 1, 'dinero': 1, 'rents': 1, '000pes': 1, 'james': 1, 'yours': 5, 'bedroom': 4, 'maangalyam': 1, 'alaipayuthe': 1, 'complaining': 1, 'finn': 1, 'calm': 1, 'downon': 1, 'theacusations': 1, 'itxt': 1, 'iwana': 1, 'wotu': 1, 'thew': 1, 'haventcn': 1, 'up4': 2, 'nething': 1, 'dine': 1, 'social': 3, 'services': 1, 'inspection': 1, 'nursery': 1, 'slowly': 6, 'becomes': 2, 'habit': 1, 'follow': 1, 'panren': 1, 'paru': 1, 'chuckin': 1, 'red': 2, 'trainners': 1, 'carryin': 1, 'bac': 1, 'schedule': 2, 'dhanush': 1, 'needing': 1, 'stuck': 1, 'habba': 1, 'dileep': 1, 'muchand': 1, 'contacts': 2, 'venugopal': 1, 'mentioned': 1, 'remembrs': 1, 'forgets': 1, 'everytime': 1, 'mandan': 2, 'regarding': 2, '3230': 1, 'textbook': 1, 'algorithms': 1, 'edition': 1, 'selling': 3, 'sexy': 4, 'buns': 2, 'adore': 1, 'atlanta': 2, 'recharge': 2, 'created': 2, 'fills': 2, 'gaps': 2, 'holding': 2, 'arun': 2, 'transfr': 1, 'takin': 1, 'philosophy': 2, 'intend': 1, 'iwas': 1, 'marine': 1, 'itried2tell': 1, 'urmom': 1, 'careabout': 1, 'desparate': 1, 'learned': 1, 'fake': 1, 'answering': 1, 'iraq': 1, 'afghanistan': 1, 'stable': 1, 'honest': 1, 'traveling': 1, 'pai': 1, 'seh': 1, 'lookin': 2, 'beer': 2, 'combine': 2, 'parts': 1, 'walsall': 1, 'tue': 1, 'terry': 1, 'chatting': 1, 'jess': 2, 'sian': 2, 'ccna': 1, 'shrek': 1, 'dirty': 2, 'fellow': 1, 'dying': 1, 'lifting': 1, 'teresa': 1, 'received': 1, 'package': 2, 'dec': 1, 'bam': 1, 'aid': 1, 'usmle': 1, 'squishy': 1, 'mwahs': 1, 'prominent': 1, 'cheek': 1, 'september': 1, 'husband': 1, 'norm': 1, 'access': 2, 'list': 4, 'joanna': 1, 'comingdown': 1, 'replacement': 1, 'murali': 1, 'player': 2, 'sts': 1, 'five': 2, 'engalnd': 1, 'telly': 2, 'mia': 1, 'elliot': 1, 'kissing': 1, 'wipro': 2, 'matric': 1, '850': 1, 'toa': 2, 'payoh': 2, '650': 1, 'payments': 1, 'fedex': 1, 'team': 1, 'reception': 1, 'hate': 1, 'consensus': 1, 'entertain': 1, 'delete': 1, 'tag': 1, 'wednesday': 3, 'skype': 2, 'laundry': 1, 'underwear': 2, 'bras': 1, 'strewn': 1, 'pillows': 1, 'connect': 2, 'waheed': 2, 'fathima': 2, 'mmmm': 1, 'weaknesses': 1, 'pushes': 1, 'knee': 1, 'exposes': 1, 'pulls': 1, 'wicked': 1, 'supports': 1, 'srt': 1, 'thnk': 5, 'ps3': 1, 'jontin': 1, 'beyond': 1, 'biro': 1, 'masters': 1, 'nichols': 1, 'shell': 1, 'unconsciously': 1, 'avoiding': 1, 'unhappy': 1, 'excuse': 1, 'jog': 1, 'season': 2, 'lark': 1, 'heads': 2, 'sim': 1, 'lim': 1, 'mp3': 2, 'vday': 2, 'parachute': 1, 'placed': 1, 'unlimited': 3, 'table': 2, 'lambda': 1, 'build': 1, 'snowman': 2, 'angels': 1, 'snowball': 1, 'fights': 1, 'ello': 1, 'ikea': 1, 'ofice': 2, 'duffer': 1, 'grr': 1, 'prescription': 1, 'pharmacy': 1, 'cook': 3, 'electricity': 1, 'nor': 1, 'mid': 2, 'fffff': 1, 'kadeem': 3, 'fujitsu': 2, 'lifebook': 1, 'scold': 1, 'zhong': 1, 'qing': 1, 'act': 1, 'hypertension': 1, 'wud': 2, 'annoyin': 1, 'carry': 1, 'disturbing': 1, 'avatar': 3, 'nigro': 1, 'scratching': 1, 'anyplaces': 1, 'stops': 1, 'cleaning': 2, 'priority': 1, 'constantly': 1, 'ecstasy': 1, 'flies': 1, 'tried': 4, 'hittng': 1, 'reflex': 1, 'lousy': 2, 'cat': 2, 'woken': 1, 'hip': 1, 'adewale': 1, 'aka': 2, 'egbon': 1, 'mary': 1, 'jane': 1, 'deduct': 1, 'wrks': 1, 'monkey': 1, 'asshole': 1, 'grab': 1, 'sliding': 1, 'payback': 1, 'honeybee': 1, 'sweetest': 1, 'laughed': 1, 'havnt': 1, 'crack': 1, 'tescos': 1, 'feathery': 1, 'bowa': 1, 'infra': 1, 'nvm': 1, 'gep': 1, 'delhi': 2, 'thinkin': 2, 'boat': 2, 'moms': 3, 'naked': 4, 'shhhhh': 1, 'related': 1, 'arul': 1, 'amk': 1, 'length': 1, 'fringe': 1, 'distract': 1, 'antha': 1, 'corrct': 1, 'dane': 1, 'basket': 1, 'proof': 2, 'rupaul': 1, 'practising': 1, 'curtsey': 1, 'yeh': 1, 'payed2day': 1, 'havbeen': 1, 'rise': 1, '4my': 1, 'havebeen': 1, 'preschoolco': 1, 'ordinator': 1, 'feelingood': 1, 'memory': 1, 'converted': 1, 'african': 1, 'soil': 1, 'major': 1, 'roles': 1, 'community': 1, 'outreach': 1, 'mel': 1, 'birth': 1, '8lb': 1, '7oz': 1, 'brilliantly': 1, 'forwarding': 1, 'intention': 1, 'visitors': 1, 'choice': 1, 'rules': 1, 'responsibility': 2, 'bend': 1, 'rule': 1, 'thia': 1, 'inlude': 1, 'previews': 1, 'ambrith': 1, 'madurai': 1, 'dha': 1, 'marrge': 1, 'kitty': 1, 'shaved': 1, 'natural': 2, 'onwards': 1, 'tactful': 1, 'theatre': 1, 'obviously': 2, 'eggs': 1, 'pert': 1, 'crammed': 1, 'satsgettin': 1, '47per': 1, 'lie': 3, 'apologize': 1, 'pei': 1, 'kid': 1, 'boost': 3, 'energy': 4, 'subtoitles': 1, 'simply': 2, 'sitting': 3, 'jot': 1, 'store': 2, 'cereals': 1, 'gari': 1, 'infernal': 1, 'affair': 1, 'including': 4, 'bold2': 1, 'calicut': 1, 'thkin': 1, 'parco': 1, 'resubbing': 1, 'shadow': 1, 'breadstick': 1, 'ahmad': 3, 'saeed': 1, 'hallaq': 2, 'purple': 1, 'pink': 1, 'orange': 3, 'lyk': 2, 'yelow': 1, 'bck': 1, 'brown': 1, 'giv': 1, 'color': 1, 'arranging': 1, 'eldest': 1, 'drugdealer': 1, 'sleepwell': 1, 'wondarfull': 1, 'normally': 2, 'onbus': 1, 'donyt': 1, 'latelyxxx': 1, 'mca': 1, 'rich': 2, 'justthought': 1, 'sayhey': 1, 'nearly': 2, 'endof': 1, 'offdam': 1, 'nevamind': 1, '2hook': 1, 'uwant': 1, 'yor': 1, 'stressed': 1, 'jason': 1, 'soooo': 1, 'provider': 1, 'tming': 1, 'cutest': 1, 'dice': 1, 'art': 1, 'howda': 1, 'mathe': 1, 'samachara': 1, 'audrie': 1, 'autocorrect': 1, 'simulate': 1, 'readiness': 1, 'armand': 1, 'vomiting': 1, 'rub': 1, 'feet': 3, 'lara': 1, 'loan': 4, 'supplies': 1, 'clever': 2, 'guesses': 1, 'attach': 1, 'washob': 1, 'nobbing': 1, 'nickey': 1, 'platt': 1, 'ryan': 1, 'vikky': 3, 'argh': 2, 'spotty': 1, 'province': 1, 'sterling': 1, 'looked': 1, 'xam': 2, 'hall': 1, 'manage': 1, 'hesitation': 1, 'intha': 1, 'ponnungale': 1, 'ipaditan': 1, 'rejected': 1, 'shitload': 1, 'diamonds': 1, 'tessy': 1, 'favor': 1, 'nimya': 2, 'shijas': 1, 'aunty': 2, 'china': 2, 'noisy': 1, 'needa': 1, 'mcat': 2, 'manual': 1, 'password': 2, 'reset': 1, 'troubleshooting': 1, 'strongly': 1, 'sacrifice': 1, 'beg': 1, 'expecting': 3, 'creativity': 1, 'stifled': 1, 'morphine': 1, 'requirements': 1, 'stayin': 2, 'dave': 1, '2getha': 1, 'cld': 1, 'prefer': 2, 'nosh': 1, 'waaaat': 1, 'lololo': 1, 'occupied': 1, 'kindly': 3, 'documents': 1, 'submitted': 1, 'stapati': 1, 'miles': 1, 'cutie': 1, 'wales': 1, 'hills': 1, 'killed': 1, 'colleagues': 5, 'sed': 2, 'mood': 2, 'minuts': 2, 'latr': 2, 'kidz': 2, 'surprise': 3, 'sofa': 3, 'honesty': 1, 'specialisation': 1, 'labor': 1, 'shakara': 1, 'beggar': 1, 'london': 1, 'smashed': 1, 'dent': 1, 'speed': 2, 'crickiting': 1, 'imin': 1, 'dontmatter': 1, 'urgoin': 1, 'outl8r': 1, 'reallyneed': 1, '2docd': 1, 'dontplease': 1, 'dontignore': 1, 'mycalls': 1, 'thecd': 1, 'isv': 1, 'tome': 1, '2moro': 1, 'yavnt': 1, 'played': 1, 'original': 1, 'popping': 1, 'ibuprofens': 1, 'sip': 1, 'grown': 1, 'chinatown': 1, 'porridge': 1, 'claypot': 1, 'yam': 1, 'fishhead': 1, 'beehoon': 1, 'tok': 2, 'specific': 1, 'jaklin': 1, 'nearby': 1, 'cliffs': 1, 'pages': 3, 'figures': 1, 'ooh': 1, '4got': 1, 'moseley': 1, 'weds': 1, 'thankyou': 1, 'pending': 1, 'aluable': 1, 'ffectionate': 1, 'oveable': 1, 'ternal': 1, 'oble': 1, 'ruthful': 1, 'ntimate': 1, 'atural': 1, 'namous': 1, 'textin': 1, 'cousin': 1, 'frndship': 3, 'excuses': 1, 'raji': 1, 'legs': 1, 'neck': 1, 'amigos': 1, 'burn': 1, 'progress': 1, 'continue': 1, 'holy': 1, 'weren': 1, 'arty': 1, 'collages': 1, 'tryin': 1, 'billion': 2, 'classes': 1, '2hrs': 1, 'waliking': 1, 'cartons': 1, 'pleased': 1, 'shelves': 1, 'pix': 1, 'distance': 1, 'notice': 3, 'mirror': 1, 'youre': 1, 'turning': 1, 'freak': 1, 'jod': 1, 'keris': 1, 'smidgin': 1, 'belive': 1, 'intentions': 1, 'empty': 1, 'slots': 2, 'accordin': 1, 'discussed': 1, 'knocking': 1, 'como': 1, 'listened2the': 1, 'plaid': 1, 'air1': 1, 'hilarious': 1, 'bought': 2, 'braindance': 1, 'comp': 1, 'ofstuff': 1, 'aphex': 1, 'abel': 1, 'hav2hear': 1, 'nelson': 1, 'temp': 1, 'unmits': 1, 'display': 2, 'newspapers': 1, 'soup': 1, 'yummmm': 1, 'management': 3, 'puzzeles': 1, 'include': 1, 'spoiled': 1, 'threats': 1, 'sales': 2, 'shifad': 1, 'raised': 1, 'complaint': 2, 'official': 1, 'doctors': 1, 'reminds': 1, 'lounge': 1, 'role': 2, 'lov': 1, 'tolerat': 1, 'bcs': 1, 'comfort': 1, 'checked': 2, 'dust': 1, 'watchin': 1, 'lifetime': 1, 'meaningless': 1, 'brdget': 1, 'jones': 1, 'inever': 1, 'exciting': 1, 'hype': 1, '700': 2, 'studio': 1, 'bedrm': 1, '900': 2, 'unable': 2, 'waited': 1, 'velly': 1, 'wkend': 1, 'huge': 1, 'marking': 1, 'letters': 2, 'mids': 1, 'annie': 1, 'remind': 2, 'hrishi': 1, 'nothin': 1, 'hanger': 1, 'poem': 1, 'cheer': 1, 'tear': 1, 'bags': 1, 'blanket': 1, 'regular': 2, 'significant': 1, 'waqt': 1, 'pehle': 1, 'naseeb': 1, 'zyada': 1, 'kisi': 1, 'kuch': 1, 'nahi': 2, 'milta': 1, 'zindgi': 2, 'hum': 1, 'sochte': 1, 'jeetey': 1, 'worse': 2, 'stalking': 1, 'dan': 1, 'reminded': 1, 'varaya': 1, 'elaya': 1, 'anand': 1, 'offers': 1, 'beach': 1, 'expected': 1, 'aww': 2, 'jez': 1, 'iscoming': 1, 'todo': 1, 'workand': 1, 'whilltake': 1, 'zogtorius': 1, 'staring': 1, 'age': 1, 'whether': 1, 'financial': 1, 'alian': 1, 'posible': 1, 'century': 1, 'frwd': 1, 'unnecessarily': 1, 'affectionate': 1, 'sorts': 1, 'owned': 1, 'possessive': 1, 'clarification': 1, 'issue': 1, 'weigh': 1, 'coimbatore': 1, 'tom': 1, 'opinions': 1, 'categories': 1, 'measure': 1, 'ethnicity': 1, 'census': 1, 'transcribing': 1, 'propsd': 1, 'lttrs': 1, 'threw': 1, 'thm': 1, 'aproach': 1, 'truck': 1, 'speeding': 1, 'instantly': 1, 'thy': 1, 'lived': 1, 'happily': 1, '2gthr': 1, 'drinking': 1, 'evrydy': 1, 'paragon': 1, 'arent': 2, 'cakes': 1, 'bluff': 2, 'impossible': 1, 'goodmate': 1, 'sary': 2, 'asusual': 1, 'cheered': 1, 'franyxxxxx': 1, 'batt': 1, 'added': 2, 'www': 1, 'realize': 1, 'pussy': 1, 'responce': 2, 'happend': 2, 'piece': 1, 'wiskey': 1, 'brandy': 1, 'rum': 1, 'gin': 1, 'vodka': 1, 'scotch': 1, 'shampain': 1, 'kudi': 1, 'yarasu': 1, 'dhina': 1, 'vaazhthukkal': 1, 'gained': 1, 'sugar': 1, 'pressure': 1, 'limits': 1, 'dumb': 1, 'thangam': 2, 'okey': 1, 'doke': 1, 'dressed': 2, 'laying': 1, 'kills': 1, 'neshanth': 1, 'byatch': 1, 'whassup': 1, 'kay': 1, 'roger': 1, 'wasted': 1, 'chiong': 1, 'christ': 1, 'dialogue': 1, 'cute': 1, 'reltnship': 1, 'wipe': 1, 'tears': 1, 'solve': 2, 'murdered': 5, 'police': 6, 'questioned': 2, 'cooking': 2, 'gardener': 2, 'vegetables': 2, 'maid': 5, 'neighbour': 2, 'murderer': 5, 'brilliant': 3, 'pose': 1, 'comb': 1, 'dryer': 1, 'fps': 1, 'computational': 1, 'science': 1, 'push': 1, 'answered': 1, 'madam': 2, 'disturbance': 1, 'dlf': 1, 'premarica': 1, 'rgds': 1, 'settle': 3, 'err': 1, '8pm': 1, 'bloo': 3, 'hitter': 1, 'offline': 1, 'anjola': 1, 'txting': 1, 'indians': 2, 'swiss': 2, 'directors': 1, 'lac': 1, 'crore': 2, 'deposited': 1, 'taxless': 1, 'budget': 2, 'jobs': 1, 'lane': 1, 'suply': 1, 'projects': 1, 'citizen': 1, 'monthly': 2, 'imf': 1, 'blocked': 1, 'politicians': 2, 'rights': 1, 'corrupt': 1, 'itna': 1, 'karo': 1, 'pura': 1, 'padhe': 1, 'torrents': 1, 'particularly': 1, 'slowing': 1, 'commit': 1, 'random': 1, 'rightio': 1, 'brum': 1, 'donno': 1, 'scorable': 1, 'stars': 1, 'paranoid': 1, 'brin': 1, 'properly': 1, 'sheet': 1, 'complain': 1, 'bettr': 1, 'bsnl': 1, 'offc': 1, 'payed': 1, 'suganya': 1, 'dessert': 1, 'abeg': 1, 'profit': 1, 'sponsors': 1, 'onum': 1, 'poet': 1, 'imagination': 1, 'famamus': 1, '630': 1, 'sry': 1, 'furniture': 1, 'lock': 1, 'locks': 1, 'key': 2, 'jenne': 1, 'easiest': 1, 'barcelona': 1, 'pansy': 1, 'jungle': 1, 'kanji': 1, 'srs': 1, 'drizzling': 1, 'appointments': 1, 'shoving': 1, 'papers': 1, 'greetings': 1, 'excused': 1, 'drama': 1, 'struggling': 1, 'strange': 1, 'ego': 1, 'necessity': 1, 'reppurcussions': 1, 'released': 2, 'cosign': 1, 'hcl': 1, 'requires': 1, 'freshers': 1, 'upto': 1, 'suman': 1, 'telephonic': 1, 'indyarocks': 1, 'dai': 2, 'resume': 1, 'direct': 1, 'link': 1, 'cars': 1, 'bids': 1, 'reliant': 1, 'fwiw': 1, 'afford': 1, 'happens': 1, 'whr': 1, 'maga': 1, 'sq825': 1, 'arrival': 1, 'yunny': 1, 'citylink': 1, 'props': 1, 'pleasant': 1, 'statements': 1, 'bognor': 1, 'splendid': 1, 'ktv': 1, 'misplaced': 1, 'computers': 1, 'mmmmm': 1, 'medicine': 1, 'begun': 1, 'registration': 1, 'permanent': 1, 'residency': 1, 'plenty': 1, 'claire': 1, 'relatives': 1, 'deliver': 1, 'risks': 1, 'benefits': 1, 'amount': 1, '6months': 1, 'predicting': 1, 'accumulation': 1, 'programs': 1, 'belongs': 1, 'fated': 1, 'shoranur': 1, 'incident': 2, 'fuelled': 1, 'concern': 1, 'prior': 1, 'grief': 1, 'violence': 1, 'environment': 1, 'terrific': 1, 'honestly': 1, 'promptly': 1, 'burnt': 1, 'advice': 1, 'someplace': 1, 'goods': 1, 'pressies': 1, 'superior': 2, 'ultimately': 1, 'tor': 1, 'motive': 1, 'tui': 1, 'achieve': 1, 'korli': 1, 'dock': 1, 'rolled': 1, 'newscaster': 1, 'dabbles': 1, 'flute': 1, 'behind': 1, 'wheel': 1, 'ruin': 1, 'erm': 1, 'contract': 1, 'the4th': 1, 'october': 1, 'elaborating': 1, 'safety': 1, 'aspects': 1, 'issues': 1, 'department': 1, 'ours': 1, 'conform': 1, 'member': 1, 'flow': 1, 'developed': 1, 'ovarian': 1, 'cysts': 1, 'shrink': 1, 'upping': 1, 'grams': 1, 'timin': 1, 'apes': 1, 'death': 2, 'ibm': 1, 'toshiba': 1, 'gosh': 1, 'spose': 1, 'rimac': 1, 'arestaurant': 1, 'squid': 1, 'dosomething': 1, 'wrk': 2, 'dabooks': 1, 'hrs': 1, 'sam': 1, 'eachother': 1, 'luckily': 1, 'starring': 1, 'restocked': 1, 'innocent': 1, 'mental': 1, 'smoothly': 1, 'hoped': 1, 'bills': 1, 'challenging': 1, '2marrow': 1, 'hon': 2, 'breakfast': 1, 'hamper': 1, 'reality': 1, 'above': 1, 'unni': 1, 'lacking': 1, 'particular': 1, 'dramastorm': 1, 'forfeit': 1, 'treated': 1, 'digi': 1, '9pm': 1, 'fab': 1, 'coupla': 1, 'wks': 1, 'sundayish': 1, 'held': 1, 'prasad': 1, 'tiwary': 1, 'rcb': 1, 'battle': 1, 'bang': 2, 'kochi': 1, 'cancer': 1, 'checkup': 1, 'pap': 1, 'smear': 1, 'gobi': 1, 'arts': 1, 'pandy': 1, 'technologies': 1, 'olowoyey': 1, 'usc': 1, 'edu': 1, 'argentina': 1, 'secretary': 1, 'taxt': 1, 'massage': 1, 'tie': 1, 'pos': 1, 'lool': 1, 'dollar': 1, 'pull': 1, 'spending': 1, 'shaking': 1, 'booty': 1, 'phones': 1, 'lil': 2, 'scarcasim': 1, 'naal': 1, 'eruku': 1, 'remains': 1, 'bro': 1, 'amongst': 1, 'bros': 1, 'impressively': 1, 'sensible': 1, 'nalla': 1, 'obedient': 1, 'combination': 1, 'needy': 1, 'pouts': 2, 'stomps': 2, 'northampton': 1, 'abj': 1, 'serving': 1, 'playng': 1, 'landline': 1, 'anna': 1, 'nagar': 1, 'yupz': 1, 'sony': 1, 'ericson': 1, 'der': 1, 'luks': 1, 'modl': 1, 'cheesy': 1, 'frosty': 1, 'witin': 1, 'shirts': 2, 'nudist': 1, 'themed': 1, 'pump': 1, 'petrol': 1, 'feb': 1, 'valued': 1, 'ignore': 1, 'evr': 1, 'signal': 1, 'neither': 1, 'unusual': 1, 'hugs': 1, 'snogs': 1, 'west': 1, 'palm': 1, 'printing': 1, 'handing': 1, 'chase': 1, 'stated': 1, 'perpetual': 1, 'steam': 2, 'reg': 1, 'pract': 1, 'flung': 1, 'january': 3, 'public': 3, 'govt': 3, 'instituitions': 3, 'justbeen': 1, 'overa': 1, 'brains': 1, 'mush': 1, 'tunde': 1, 'missions': 1, 'sleepy': 1, 'dare': 1, 'ben': 1, 'mag': 1, 'avo': 1, 'middle': 1, 'crashed': 1, 'cuddled': 1, 'chachi': 1, 'tiz': 1, 'kanagu': 1, 'prices': 1, 'ringing': 1, 'houseful': 1, 'brats': 1, 'pulling': 1, 'diwali': 1, 'tick': 3, 'onion': 1, 'derp': 1, 'abusers': 1, 'lipo': 1, 'easter': 1, 'netflix': 1, 'thgt': 2, 'clash': 1, 'arr': 1, 'oscar': 1, 'rebtel': 1, 'firefox': 1, 'user': 1, 'numbers': 1, 'lower': 1, 'pin': 1, 'various': 1, 'impressed': 1, 'funs': 1, 'exhaust': 1, 'replacing': 1, 'ordered': 1, 'mittelschmertz': 1, 'paracetamol': 1, 'pee': 1, 'arrived': 1, 'cthen': 1, 'enuff': 1, 'conclusion': 1, 'contents': 2, 'references': 1, 'success': 1, 'rugby': 1, 'affidavit': 1, 'twiggs': 1, 'division': 1, 'courtroom': 1, 'creep': 1, 'showers': 1, 'possessiveness': 1, 'poured': 1, 'lies': 1, 'golden': 1, 'lasting': 1, 'wtc': 1, 'weiyi': 1, 'private': 1, 'property': 1, 'teeth': 1, 'paining': 1, 'maggi': 1, 'mee': 1, 'nasty': 1, 'cough': 1, 'bbd': 1, 'pooja': 1, 'pimples': 1, 'sweatter': 1, 'ambitious': 1, 'miiiiiiissssssssss': 1, 'tunji': 1, 'yellow': 1, 'misscall': 1, 'frndz': 1, '6missed': 1, 'tall': 1, 'doubt': 1, 'handle': 1, 'note': 1, 'robs': 1, 'avenge': 1, 'japanese': 1, 'proverb': 1, 'strike': 1, 'choices': 1, 'toss': 1, 'coin': 2, 'gudni8': 1, 'dancin': 1, 'cinema': 1, 'explicitly': 1, 'nora': 1, 'smith': 1, 'gayle': 1, 'crucify': 1, 'moved': 1, 'butting': 1, 'freedom': 1, 'cedar': 1, 'twenty': 1, 'durham': 1, 'reserved': 1, 'seat': 1, 'painting': 1, 'wall': 1, 'printer': 1, 'groovy': 1, 'groovying': 1, 'harish': 1, 'transfred': 1, 'acnt': 1, 'nowadays': 1, 'showrooms': 1, 'city': 1, 'shaping': 1, 'attending': 1, 'talks': 1, 'probs': 1, 'doinat': 1, 'callon': 1, 'low': 1, 'swatch': 1, 'ganesh': 1, 'dress': 1, 'collecting': 1, 'configure': 1, 'settings': 1, 'trips': 1, 'anal': 1, 'sex': 1, 'pears': 1, 'helloooo': 1, 'welcomes': 1, 'summer': 1, 'celebrate': 1, 'such': 1, 'worlds': 1, 'oooooh': 1, '2geva': 1, 'mint': 1, 'humans': 1, 'studyn': 1, 'wuld': 1, 'everyboy': 1, 'xxxxxxxx': 1, 'solved': 1, '1thing': 1, 'answr': 1, 'liquor': 1, 'flaked': 1, 'loko': 1, '730': 1, 'lined': 1, 'ing': 1, 'laughs': 1, 'fireplace': 1, 'icon': 1, 'fifth': 1, 'woozles': 1, 'weasels': 1, 'gary': 1, 'cheaper': 1, 'machines': 1, 'fucks': 1, 'sake': 1, 'ignorant': 1, 'mys': 1, 'bruce': 1, 'downs': 1, 'fletcher': 1, 'teaching': 1, 'bowls': 1, 'cozy': 1, 'buzzzz': 1, 'chest': 1, 'vibrator': 1, 'shake': 1, 'covers': 1, 'trends': 1, 'pros': 1, 'cons': 1, 'brief': 2, 'description': 1, 'nuclear': 1, 'fusion': 1, 'history': 1, 'iter': 1, 'jet': 1, 'nowhere': 1, 'ikno': 1, 'doesdiscount': 1, 'shitinnit': 1, 'jabo': 1, 'abi': 1, 'sapna': 1, 'manege': 1, 'hogidhe': 1, 'chinnu': 1, 'swalpa': 1, 'agidhane': 1, 'sports': 1, 'footbl': 1, 'crckt': 1, 'swell': 1, 'tim': 1, 'bollox': 1, 'tol': 1, 'hang': 1, 'ingredients': 1, 'pocy': 1, 'bell': 1, 'non': 1, 'senor': 1, 'giggle': 1, 'possibly': 1, 'person2die': 1, 'nvq': 1, 'reboot': 1, 'grinder': 1, 'buyers': 1, 'figuring': 1, 'entirely': 1, 'understood': 1, 'bottom': 1}\n",
      "准确率: 0.968531468531\n",
      "召回率: 0.997763864043\n",
      "精确率: 0.967056783702\n",
      "             precision    recall  f1-score   support\n",
      "\n",
      "          0       0.98      0.78      0.87       338\n",
      "          1       0.97      1.00      0.98      2236\n",
      "\n",
      "avg / total       0.97      0.97      0.97      2574\n",
      "\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import recall_score\n",
    "from sklearn.metrics import precision_score\n",
    "from sklearn.metrics import classification_report\n",
    "from sklearn.metrics import accuracy_score\n",
    "if __name__ == \"__main__\":\n",
    "    # 加载数据集\n",
    "    data, classTag = getDateSet()\n",
    "    # 设置训练集大小\n",
    "    train_size = 3000\n",
    "    # 训练集\n",
    "    train_X = data[:train_size]\n",
    "    train_y = classTag[:train_size]\n",
    "    # 测试集\n",
    "    test_X = data[train_size:]\n",
    "    test_y = classTag[train_size:]\n",
    "    # 在训练集上训练模型\n",
    "    nb_model = NaiveBayes()\n",
    "    nb_model.fit(train_X, train_y)\n",
    "    # 在测试集上得到预测结果\n",
    "    pre_y = nb_model.predict(test_X)\n",
    "\n",
    "    # 模型评价\n",
    "    accuracy_score_value = accuracy_score(test_y, pre_y)\n",
    "    recall_score_value = recall_score(test_y, pre_y)\n",
    "    precision_score_value = precision_score(test_y, pre_y)\n",
    "    classification_report_value = classification_report(test_y, pre_y)\n",
    "    print(\"准确率:\", accuracy_score_value)\n",
    "    print(\"召回率:\", recall_score_value)\n",
    "    print(\"精确率:\", precision_score_value)\n",
    "    print(classification_report_value)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 打开文件，指定路径和编码方式\n",
    "try:\n",
    "    with open('./SMSSpamCollection', 'r', encoding='utf8') as f:\n",
    "        # 读取文件中的每一行，并按制表符分隔\n",
    "        sms = [line.strip().split('\\t') for line in f]\n",
    "    \n",
    "    # 将列表中的每个元素拆分为两个部分：标签(y)和内容(X)\n",
    "    y, X = zip(*sms)\n",
    "\n",
    "except FileNotFoundError:\n",
    "    # 如果文件未找到，打印错误信息\n",
    "    print(\"文件未找到，请检查路径。\")\n",
    "except Exception as e:\n",
    "    # 捕捉其他异常并打印错误信息\n",
    "    print(f\"发生错误: {e}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.feature_extraction.text import CountVectorizer as CV\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "# 将标签转换为布尔值'spam'为True，其它为False\n",
    "y = [label == 'spam' for label in y]\n",
    "\n",
    "# 将数据集拆分为训练集和测试集，默认测试集占比为25%\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y)\n",
    "\n",
    "# 初始化CountVectorizer，并设置token_pattern只匹配长度为2或更多字母的单词\n",
    "counter = CV(token_pattern='[a-zA-Z]{2,}')\n",
    "\n",
    "# 在训练集上拟合CountVectorizer，并将文本转换为特征矩阵\n",
    "X_train = counter.fit_transform(X_train)\n",
    "\n",
    "# 使用训练好的CountVectorizer将测试集文本转换为特征矩阵\n",
    "X_test = counter.transform(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train score: 0.990909090909\n",
      "test score: 0.986370157819\n"
     ]
    }
   ],
   "source": [
    "from sklearn.naive_bayes import MultinomialNB as NB\n",
    "\n",
    "# 初始化MultinomialNB分类器\n",
    "model = NB()\n",
    "\n",
    "# 使用训练数据拟合模型\n",
    "model.fit(X_train, y_train)\n",
    "\n",
    "# 计算并打印训练集上的准确率\n",
    "train_score = model.score(X_train, y_train)\n",
    "print(\"train score:\", train_score)\n",
    "\n",
    "# 计算并打印测试集上的准确率\n",
    "test_score = model.score(X_test, y_test)\n",
    "print(\"test score:\", test_score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train predict = 0.8933333333333333\n",
      "test predict = 0.84\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1ade545a208>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 导入必要的库\n",
    "from sklearn.datasets import make_blobs\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.naive_bayes import GaussianNB  # 高斯朴素贝叶斯分类器\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# 生成示例数据\n",
    "X, y = make_blobs(n_samples=300, centers=7, random_state=3)\n",
    "\n",
    "# 将数据集拆分为训练集和测试集\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=3)\n",
    "\n",
    "# 初始化并训练高斯朴素贝叶斯模型\n",
    "bayes = GaussianNB()\n",
    "bayes.fit(X_train, y_train)\n",
    "\n",
    "# 计算并输出训练集和测试集的准确率\n",
    "train_score = bayes.score(X_train, y_train)\n",
    "test_score = bayes.score(X_test, y_test)\n",
    "print(\"train predict = {}\".format(train_score))\n",
    "print(\"test predict = {}\".format(test_score))\n",
    "\n",
    "# 绘制决策边界\n",
    "x_min, x_max = X[:,0].min() - 1, X[:,0].max() + 1\n",
    "y_min, y_max = X[:,1].min() - 1, X[:,1].max() + 1\n",
    "\n",
    "# 创建网格以绘制决策边界\n",
    "xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.02), np.arange(y_min, y_max, 0.02))\n",
    "z = bayes.predict(np.c_[(xx.ravel(), yy.ravel())]).reshape(xx.shape)\n",
    "\n",
    "# 绘制决策边界及数据点\n",
    "plt.pcolormesh(xx, yy, z, cmap=plt.cm.Pastel1, alpha=0.3)\n",
    "plt.scatter(X_train[:,0], X_train[:,1], c=y_train, cmap=plt.cm.cool, marker='.', edgecolors='k', label='train')\n",
    "plt.scatter(X_test[:,0], X_test[:,1], c=y_test, cmap=plt.cm.cool, marker='^', edgecolors='k', label='test')\n",
    "plt.xlim(xx.min(), xx.max())\n",
    "plt.ylim(yy.min(), yy.max())\n",
    "plt.title('GaussianNB Decision Boundary')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train predict = 0.5422222222222223\n",
      "test predict = 0.5066666666666667\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n/wGvDplfa+jT+wAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1ad829061d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 导入必要的库和模块\n",
    "from sklearn.datasets import make_blobs  # 生成示例数据\n",
    "from sklearn.model_selection import train_test_split  # 切分数据集\n",
    "from sklearn.naive_bayes import BernoulliNB  # 伯努利朴素贝叶斯分类器\n",
    "import numpy as np  # 数值计算\n",
    "import matplotlib.pyplot as plt  # 绘图库\n",
    "\n",
    "# 生成示例数据\n",
    "X, y = make_blobs(n_samples=300, centers=7, random_state=3)\n",
    "\n",
    "# 切分数据集为训练集和测试集\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=3)\n",
    "\n",
    "# 初始化并训练伯努利朴素贝叶斯模型\n",
    "bayes = BernoulliNB()\n",
    "bayes.fit(X_train, y_train)\n",
    "\n",
    "# 计算并输出训练集和测试集的准确率\n",
    "train_score = bayes.score(X_train, y_train)\n",
    "test_score = bayes.score(X_test, y_test)\n",
    "print(\"train predict = {}\".format(train_score))\n",
    "print(\"test predict = {}\".format(test_score))\n",
    "\n",
    "# 绘制决策边界\n",
    "x_min, x_max = X[:,0].min() - 1, X[:,0].max() + 1\n",
    "y_min, y_max = X[:,1].min() - 1, X[:,1].max() + 1\n",
    "\n",
    "# 创建网格以绘制决策边界\n",
    "xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.02), np.arange(y_min, y_max, 0.02))\n",
    "z = bayes.predict(np.c_[xx.ravel(), yy.ravel()]).reshape(xx.shape)\n",
    "\n",
    "# 绘制决策边界及数据点\n",
    "plt.pcolormesh(xx, yy, z, cmap=plt.cm.Pastel1, alpha=0.3)  # 决策边界的颜色\n",
    "plt.scatter(X_train[:,0], X_train[:,1], c=y_train, cmap=plt.cm.cool, marker='.', edgecolors='k', label='train')\n",
    "plt.scatter(X_test[:,0], X_test[:,1], c=y_test, cmap=plt.cm.cool, marker='^', edgecolors='k', label='test')\n",
    "plt.xlim(xx.min(), xx.max())\n",
    "plt.ylim(yy.min(), yy.max())\n",
    "plt.title('BernoulliNB Decision Boundary')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train predict = 0.44\n",
      "test predict = 0.37333333333333335\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1ad82a9f668>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 导入必要的库和模块\n",
    "from sklearn.datasets import make_blobs  # 生成示例数据\n",
    "from sklearn.model_selection import train_test_split  # 切分数据集\n",
    "from sklearn.naive_bayes import MultinomialNB  # 多项式朴素贝叶斯分类器\n",
    "import numpy as np  # 数值计算\n",
    "import matplotlib.pyplot as plt  # 绘图库\n",
    "from sklearn.preprocessing import MinMaxScaler  # 数据标准化\n",
    "\n",
    "# 生成示例数据\n",
    "X, y = make_blobs(n_samples=300, centers=7, random_state=3)\n",
    "\n",
    "# 切分数据集为训练集和测试集\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=3)\n",
    "\n",
    "# 初始化数据标准化器并应用于训练集和测试集\n",
    "scaler = MinMaxScaler()\n",
    "scaler.fit(X_train)  # 计算训练集的缩放参数\n",
    "X_train_scaler = scaler.transform(X_train)  # 规范化训练集\n",
    "X_test_scaler = scaler.transform(X_test)  # 规范化测试集\n",
    "\n",
    "# 初始化并训练多项式朴素贝叶斯模型\n",
    "bayes = MultinomialNB()\n",
    "bayes.fit(X_train_scaler, y_train)\n",
    "\n",
    "# 计算并输出训练集和测试集的准确率\n",
    "train_score = bayes.score(X_train_scaler, y_train)\n",
    "test_score = bayes.score(X_test_scaler, y_test)\n",
    "print(\"train predict = {}\".format(train_score))\n",
    "print(\"test predict = {}\".format(test_score))\n",
    "\n",
    "# 绘制决策边界\n",
    "x_min, x_max = X[:,0].min() - 1, X[:,0].max() + 1\n",
    "y_min, y_max = X[:,1].min() - 1, X[:,1].max() + 1\n",
    "\n",
    "# 创建网格以绘制决策边界\n",
    "xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.02), np.arange(y_min, y_max, 0.02))\n",
    "z = bayes.predict(np.c_[xx.ravel(), yy.ravel()]).reshape(xx.shape)\n",
    "\n",
    "# 绘制决策边界及数据点\n",
    "plt.pcolormesh(xx, yy, z, cmap=plt.cm.Pastel1, alpha=0.3)  # 决策边界的颜色\n",
    "plt.scatter(X_train[:,0], X_train[:,1], c=y_train, cmap=plt.cm.cool, marker='.', edgecolors='k', label='train')\n",
    "plt.scatter(X_test[:,0], X_test[:,1], c=y_test, cmap=plt.cm.cool, marker='^', edgecolors='k', label='test')\n",
    "plt.xlim(xx.min(), xx.max())\n",
    "plt.ylim(yy.min(), yy.max())\n",
    "plt.title('MultinomialNB Decision Boundary')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
